Как сделать, чтобы git прекратил отслеживать изменения в файле, сохраняя его в индексе? - PullRequest
2 голосов
/ 28 мая 2011

У меня есть файл конфигурации stuff.conf в проекте с открытым исходным кодом, над которым я работаю. Я хочу, чтобы примерная копия этого файла находилась в репозитории Git (по правильному пути), чтобы люди, которые клонируют проект, получили его. Тем не менее, удобно вносить локальные изменения в конфигурацию при работе с программным обеспечением - и тогда я неизбежно непреднамеренно фиксирую эти изменения с помощью git -a. В лучшем случае измененный файл лежит вокруг нытья в состоянии git.

Аналогичная проблема возникает в Makefiles с переменными конфигурации в них.

Есть ли способ, кроме удаления файла из элемента управления Git, заставить Git просто игнорировать изменения в определенном пути до дальнейшего уведомления?

1 Ответ

4 голосов
/ 28 мая 2011

git update-index --assume-unchanged должен сделать трюк.

С http://www.kernel.org/pub/software/scm/git/docs/git-update-index.html:

Когда бит «предположить, что без изменений» включен, Git перестает проверять рабочее дерево файлы для возможных модификаций, так вам нужно вручную сбросить бит скажи мерзавцу, когда поменяешь работу файл дерева. Это иногда полезно при работе с большим проектом на файловая система с очень медленным lstat (2) системный вызов (например, cifs).

Эта опция также может быть использована как грубый механизм на уровне файлов, чтобы игнорировать незафиксированные изменения в отслеживаемых файлах (Сродни тому, что делает .gitignore для неотслеживаемые файлы). Git потерпит неудачу (изящно) на случай, если изменить этот файл в индексе, например при слиянии в коммите; таким образом, в случай, если предполагаемый неотслеживаемый файл изменилось вверх по течению, вам нужно будет справиться с ситуацией вручную.

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