Git игнорировать локально удаленную папку

У меня есть приложение Ruby on Rails, которое вылетает, когда присутствует vendor/rails, но работает нормально, если его нет. Мне нужно оставить эту папку удаленной в моей локальной копии, чтобы я мог работать, но я не хочу, чтобы это удаление когда-либо было зафиксировано. Кто-то не зря его туда положил.

Итак, как мне удалить эту папку, чтобы она не попала в git status в виде тысячи удаленных файлов? Очевидно, .gitignore не будет работать, поскольку вы не можете игнорировать файлы, которые уже отслеживаются. Ни одно из решений, перечисленных здесь (git update-index --assume-unchanged), также не работает.


person Alexander Ljungberg    schedule 03.01.2011    source источник


Ответы (1)


 git ls-files --deleted -z | git update-index --assume-unchanged -z --stdin

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

person Aristotle Pagaltzis    schedule 04.01.2011
comment
Ага, конечно, каталоги или файлы. Вот и все - спасибо! - person Alexander Ljungberg; 04.01.2011
comment
git ls-files --deleted -z | git update-index --assume-unchanged -z --stdin игнорирует все удаленные в данный момент файлы. - person blinry; 29.06.2012
comment
@blinry Добавьте это как ответ. У меня отлично сработало! - person jmotes; 21.06.2013
comment
@blinry: да! Намного лучше, чем проверить и использовать find (1). Я обновил ответ соответственно, спасибо. - person Aristotle Pagaltzis; 24.07.2013
comment
Ага, вот что я имел в виду. Я отредактирую, чтобы это было понятно. - person Aristotle Pagaltzis; 21.03.2018
comment
Как это отменить? - person vpzomtrrfrt; 14.09.2018
comment
Используя --no-assume-unchanged. - person Aristotle Pagaltzis; 22.09.2018