Как остановить отслеживание файла, не удаляя его из репо - PullRequest
34 голосов
/ 16 августа 2011

У меня есть файл конфигурации, который я хочу сохранить в удаленном хранилище, но я не хочу отслеживать его изменения на моем компьютере. Добавление его в .gitignore не помогает.

Причина, по которой я не хочу отслеживать изменения, заключается в том, что они должны различаться между компьютерами в зависимости от их среды.

Ответы [ 4 ]

83 голосов
/ 17 августа 2011

Если вы хотите временно остановить отслеживание файла, вы все равно можете использовать

git update-index --assume-unchanged <file>
// track changes again :
git update-index --no-assume-unchanged <file>
10 голосов
/ 16 августа 2011

Если это так, то вам вообще не нужно иметь версию файла; Вам следует создать версию шаблона файла. Например, если файл конфигурации foo/config.txt, то в хранилище должен быть версионный foo/config.txt.template с примерами (или пустыми) настройками конфигурации. foo/config.txt вообще не должен находиться в хранилище, и должен игнорироваться с .gitignore.

Затем в новом клоне вы просто копируете foo/config.txt.template в foo/config.txt и изменяете настройки соответствующим образом.

1 голос
/ 29 ноября 2017

Вам нужно будет сделать комбинацию файла .gitignore и git rm --cached.Используйте следующую команду:

git rm --cached filename.txt

Это удалит файл из индексации, но сохранит его в вашем хранилище и рабочей области.После применения rm --cached вам нужно будет зафиксировать изменения, чтобы они вступили в силу.Он будет отображаться как удаленный в отслеженных вами изменениях, но это только потому, что он был удален из индексации.Примечание. Если вы снова внесете в него изменения в будущих коммитах, вам нужно будет выполнить: git rm --cached, чтобы отследить изменения в файле из конкретного коммита.

0 голосов
/ 29 августа 2013

Вы можете зафиксировать все остальные файлы, а для внесения изменений только в локальные конфигурации вы можете использовать функцию 'stash' , которую предоставляет git.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...