Я хочу, чтобы git перестал отслеживать мой локальный журнал разработки (log / development.log) в наших репозиториях. Возможно ли это и как это сделать?
от klemens: вам нужно добавить файл в свой .gitignoreфайл где-нибудь над нежелательным файлом в репо. т.е.
$ cd $ cat >> .gitignore development.log CD
от м. narebski: Затем вам нужно удалить файл из репозитория, выполнив « git rm --cached <file>и затем зафиксировав это удаление»
Если вы также надеялись, что репо будет выглядеть так, как если бы оно никогда не отслеживало этот файл, это намного сложнее и крайне не рекомендуется, поскольку оно не только создает совершенно новые коммиты для каждого отдельного коммита в вашей истории, тем самым нарушая совместимость. между другими людьми, которые клонировали ваше репо, но при этом все коммиты остаются непроверенными (при условии, что вы проверяете свои коммиты перед их выполнением).
С учетом этого предостережения, инструмент, который вы ищете, если это ваша цель filter-branch. Первый пример делает именно то, что я описываю.
использование git rm --cached, похоже, не только удалило мою ветку, но и когда я перешел в другую систему, он физически удаляет файлы в этой системе. Есть идеи, что там происходит?
biagidp
2
В ответ на вышесказанное: я считаю, что проблема заключалась в том, что у меня не было .gitignore в альтернативной системе до извлечения изменений, поэтому удаление удалило локальную копию. По крайней мере, это теория
biagidp
53
Чтобы остановить отслеживание файла, просто используйте git rm --cached <filename>.
Но, как указывали здесь другие, добавление файла в .gitignore может предотвратить случайное добавление его позже.
Это только половина ответа. .gitignoreзаписи не применяются к файлам, которые уже отслеживаются.
CB Bailey
10
Вторая часть - это git rm --cached <file>и потом это удаление.
Якуб Наребски 08
1
Почему для git нет простой команды для повторной оценки всех отслеживаемых файлов в соответствии с текущим файлом .gitignore? ... или это слишком много здравого смысла? : p
Ответы:
Просто чтобы сразу дать полный ответ:
от klemens: вам нужно добавить файл в свой
.gitignore
файл где-нибудь над нежелательным файлом в репо. т.е.$ cd $ cat >> .gitignore development.log CD
от м. narebski: Затем вам нужно удалить файл из репозитория, выполнив «
git rm --cached <file>
и затем зафиксировав это удаление»Если вы также надеялись, что репо будет выглядеть так, как если бы оно никогда не отслеживало этот файл, это намного сложнее и крайне не рекомендуется, поскольку оно не только создает совершенно новые коммиты для каждого отдельного коммита в вашей истории, тем самым нарушая совместимость. между другими людьми, которые клонировали ваше репо, но при этом все коммиты остаются непроверенными (при условии, что вы проверяете свои коммиты перед их выполнением).
С учетом этого предостережения, инструмент, который вы ищете, если это ваша цель
filter-branch
. Первый пример делает именно то, что я описываю.источник
Чтобы остановить отслеживание файла, просто используйте
git rm --cached <filename>
.Но, как указывали здесь другие, добавление файла в .gitignore может предотвратить случайное добавление его позже.
источник
добавьте файл gitignore.
см. http://git-scm.com/docs/gitignore
источник
.gitignore
записи не применяются к файлам, которые уже отслеживаются.git rm --cached <file>
и потом это удаление.