Иногда бывает нужно внести изменения в локальные файлы таким образом, чтобы git в дальнейшем при добавлении (git add .) или коммите (git commit -a) не отслеживал эти изменения и не сохранял их в репозиторий. Самое простое решение на первый взгляд добавить такие файлы в .gitignore, но оно не работает к файлам уже находящимся в репозитории и git по преждему отслеживает изменения этих файлов.
К счастью, есть простое решение для этого. В GIT игнорирование изменений в локальных файлах, которые уже находятся в репозитории, можно настроить с помощью одной команды.
Достаточно выполнить команду применительно к файлу или каталогу для игнорирования изменений:
1 |
git update-index --assume-unchanged <file> |
Для отмены игнорирования отслеживания изменения существует обратная команда:
1 |
git update-index --no-assume-unchanged <file> |
Чтобы посмотреть список файлов или каталогов для которых игнорируются изменения можно выполнить команду:
1 |
git ls-files -v|grep '^h' |
Для удобства можно создать короткие ссылки:
1 2 3 |
git config --global alias.untrack "update-index --assume-unchanged" git config --global alias.track "update-index --no-assume-unchanged" git config --global alias.ls-untrack \!"git ls-files -v | grep '^h'" |
Которые в дальнейшем можно использовать следующим образом:
1 2 3 |
git untrack <file> git ls-untrack git track <file> |