четверг, 7 июля 2016 г.

Немного магии: git --assume-unchanged

Git, как и vim можно использовать десятилетиями и вдруг заметить новую полезную команду.

Со мной это довольно регулярно происходит.

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

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

И оказалось есть путь получше:

Игнорировать изменения файла:
git update-index --assume-unchanged my/super/file

Вернуть его в строй:
git update-index --no-assume-unchanged

Просмотреть список таких:
git ls-files -v | grep "^[[:lower:]]"


Сплошное удовольствие.