Есть примеры, например Файлы конфигурации приложения, которые я хочу отслеживать в git (поэтому .gitignore не будет работать), но которые мне нужно изменить для локальных настроек. Я не хочу, чтобы git управлял этими файлами или показывал их как измененные. Для этого я использую skip-worktree:
git update-index --skip-worktree path/to/file
Вы можете подтвердить пропуск файлов, перечислив файлы и проверив наличие строк, начинающихся с S, для пропущенных
git ls-files -v | grep ^S
Если в будущем вы захотите, чтобы git снова управлял файлом локально, просто запустите:
git update-index --no-skip-worktree path/to/file
У Мескалито выше был отличный ответ, который привел меня на правильный путь, но
git update-index --assume-неизмененный файл / в / ignore.php
Имеет контракт с git, в котором: пользователь обещает не изменять файл и позволяет Git предположить, что файл рабочего дерева соответствует тому, что записано в индексе.
Однако я меняю содержимое файлов, поэтому в моем случае --skip-worktree - лучший вариант.
На веб-сайте Toshiharu Nishina было дано отличное объяснение пропуска рабочего дерева и предположения без изменений: Игнорировать файлы, уже управляемые с помощью Git локально