Как игнорировать файлы, находящиеся в репозитории?
У меня есть файл (config.php), который уже отправлен в репозиторий Git, но я хочу игнорировать локально, т.е. я хочу, чтобы этот файл оставался в репозитории, но принудительно Git игнорировать любые изменения в он.
Я помещаю файл в .gitignore, но он по-прежнему помечен как измененный, и Git все еще пытается зафиксировать изменения, каждый раз, когда я что-то совершаю. Любая идея, что мне не хватает или что-то не так?
Ответы
Ответ 1
Если файл все еще отображается в статусе, даже если он находится в .gitignore, убедитесь, что он еще не отслеживается.
git rm --cached config.php
Если вы просто хотите игнорировать его локально, вы можете также игнорировать его git status:
git update-index --assume-unchanged config.php
Ответ 2
Если файл уже находится в репозитории и, следовательно, в области Index/Staging, обновление до .gitignore не изменит эту ситуацию. Это будет продолжаться.
Чтобы удалить файл из области Index/Staging, используйте git rm <file>
.
Ответ 3
Игнорировать проверено в файле:
git update-index --assume-unchanged file
Вернуться
git update-index --no-assume-unchanged file
Вернуть все
git update-index --really-refresh
Ответ 4
Как только файл указан в .gitignore, вы не можете его изменить.
Таким образом, вы можете удалить файл из списка в одном коммите, зафиксировать изменения следующего, а затем снова добавить файл в список игнорирования в 3-й фиксации.
Что я обычно делаю, так это разделить файл на два, один из которых разрешен, и я могу изменить его, который включает в себя второй файл, если он существует, а затем разработчики могут внести изменения конфигурации в проигнорированный файл.