Во-первых, механизм игнорирования никак не влияет на файлы, которые уже отслеживаются в хранилище. Итак, если вы хотите, чтобы .gitignore
работал, вы должны удалить файл из репозитория (как вы это сделали с git rm --cached
), но затем, как вы заметили, он будет удален при обновлении удаленного репозитория.
Итак, я не думаю, что вам следует .gitignore
файл в этой ситуации. В семантике пропущенных файлов в git есть тонкость, которая поймала меня несколько раз - игнорируемые файлы рассматриваются как одноразовые , поскольку механизм предназначен для продуктов сборки. Здесь у вас есть файл, который вы хотите игнорировать, но он ценный, и в настоящее время git не может его указать.
Например, в вашей ситуации, если вы воссоздаете index.php
вручную, это будет работать нормально, но затем, если вы используете git checkout old-commit
, чтобы вернуться к старой версии, где отслеживалась index.php
, а затем вернитесь туда, где вы были раньше, с git checkout -
, ваш index.php
будет удален!
Я бы посоветовал вам изменить index.php
на источник правильных настроек для переменной среды из какого-либо другого файла:
- вне хранилища
- или находится в хранилище, игнорируется и находится на пути, который никогда не отслеживался в хранилище
В идеале, тогда также добавьте значение по умолчанию, когда этот другой файл не существует.