Игнорировать измененные (но не зафиксированные) файлы в git?
Можно ли сообщить git игнорировать файлы, которые были изменены (удалены), но не должны быть выполнены?
Ситуация заключается в том, что у меня есть подкаталог в репо, который содержит вещи, которые меня совсем не интересуют, поэтому я удалил их, чтобы предотвратить его появление в автозавершениях и т.п. (в среде IDE).
Но теперь, если я добавлю эту папку в .gitignore, просто ничего не изменится, все содержимое будет показано как удаленное с помощью статуса git.
Есть ли способ сделать git игнорировать его в любом случае?
(В качестве альтернативы, когда я использую git -svn, могу ли я внести изменения в локальный git и убедиться, что они не переданы в репозиторий svn?)
Ответы
Ответ 1
просмотрите git -update-index man page и бит -амму без изменений и связанные с ним.
когда у меня есть ваша проблема, я делаю это
git update-index --assume-unchanged dir-im-removing/
или конкретный файл
git update-index --assume-unchanged config/database.yml
Ответ 2
Более новый и лучший вариант
git update-index --skip-worktree
, который не будет потерян при жестком reset или новом изменении от pull.
См. справочную страницу в http://schacon.github.com/git/git-update-index.html
И сравнение http://fallengamer.livejournal.com/93321.html
Ответ 3
Отслеживаемые файлы нельзя игнорировать, поэтому сначала вы должны удалить их из своего индекса. Добавьте .gitignore
, который игнорирует каталоги, которые вы не хотите, затем удалите их и удалите любые отступники с помощью git rm --cached
.
Ответ 4
То, что я обычно делаю, это
git stash
git any-else
git применяется прикладывание
git скрытый вид
Ответ 5
Используйте этот код
git update-index --assume-unchanged file-name
Ответ 6
Хотя ОП уже получил ответ, для тех, кто хочет знать типичные проблемы и решения, я нашел полезным следующее руководство:
Учебные руководства по Azure Git: игнорируйте изменения файлов с помощью git