Удаляем файл из индекса git

Полезная команда при работе с системой контроля версии git, позволяющая безопасно исключить файл из индекса


Бывает так, что вы составили .gitignore, вроде предусмотрели все файлы, которые не нужно отслеживать, начали работать с проектом, используя git, а потом раз, — и поняли, что вам совершенно не нужно отслеживать один или несколько файлов. Безопасная команда git, которая сделает исключение файла из индекса, без удаления его физически:

git update-index --assume-unchanged <file>

Удаляет из индекса необходимые файлы (файлы должны быть unstaged, т.е. данная команда не подействует на файлы, к которым ранее применялся git add .)

Обратная команда:

git update-index --no-assume-unchanged <file>

По сути в большинстве источников приводится пример, как это сделать с помощью команды:

git rm --cached <file>

Сначала вносим изменения в .gitignore, затем выполняем команду. И везде упоминается, что файл НЕ будет удален из рабочего каталога (т.е. того каталога, в котором вы запускаете эту команду. Однако, очень часто упускается тот момент, что, хотя в рабочем каталоге файл останется, он будет помечен для удаления в репозитории. Таким образом, если применить эту команду, то во всех других репозиториях при вытягивании (pull) изменений данный файл будет физически удален.



Похожие заметки:

Отмена последнего или другого коммита

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

Открыть здесь


Перед тем как писать комментарии, рекомендую ознакомиться:

Markdown синтаксис »

Оформление кода »

Нужна аватарка »

Комментарии