Как остановить отслеживание файла, не удаляя его из РЕПО



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



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

571   4  
git

4 ответов:

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

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

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

git update-index --assume-unchanged <file>
// track changes again :
git update-index --no-assume-unchanged <file>

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

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

Git rm -- кэшированное имя файла.txt

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

Comments

    Ничего не найдено.