Как остановить git от отслеживания любых изменений в файле из этой фиксации вперед?


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

Я хотел бы, чтобы будущие запросы репозитория Git включали версию по умолчанию, но игнорировали любые изменения, внесенные любым пользователем.

следующее сохраняет локальную конфигурацию, но подталкивает удаление к РЕПО, что приводит к проблемам в будущем тянет.

cat "app/dir/config.file" >> .gitignore
git rm --cached app/dir/config.file

следующее выполняет задание, но не сохраняется после нажатия на репо.

git update-index --assume-unchanged app/dir/config.file

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

2 52

2 ответа:

как обычно у github есть отличный документ об этом.

https://help.github.com/articles/ignoring-files#ignoring-versioned-files

вот соответствующий фрагмент:

игнорируя версированные файлы

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

  1. в терминале перейдите к местоположению вашего репозитория Git.
  2. выполните в терминале следующую команду:

git update-index --assume-unchanged path/to/file.txt

как только вы отметите такой файл, Git полностью игнорирует любые изменения на нем. Он никогда не будет отображаться при запуске git status или git diff, и это никогда не будет совершено.

чтобы сделать Git отслеживать файл снова, просто запустите:

git update-index --no-assume-unchanged path/to/file.txt.

не уверен, что это "лучший" способ... но то, что я нашел для работы, занимает несколько шагов.

Новый Пример Laravel:

  1. git init
  2. настройки .gitignore файлы для желаемых результатов, как не потерять папки поставщиков.
  3. создать копию файлов, которые вы не хотите отслеживать (например .htaccess, .ОКР и т. д.)
  4. git add .
  5. git commit -m "first commit"
  6. git rm --cached public /.htaccess затем git rm --cached .env
  7. git commit
  8. git status следует показать эти файлы как удаленные.
  9. Теперь поместите файл, который вы скопировали обратно. Поскольку они имеют то же имя, что и то, что вы сказали git удалить из отслеживания, git теперь полностью игнорирует эти файлы.

теперь они могут быть отредактированы, и вы можете иметь локальные и производственные версии. Примечание: возможно, Вам придется повторить все эти шаги в первый раз на настройку производства. До сих пор это работало хорошо для мне.