Могу ли я сказать git игнорировать файлы, которые были изменены (удалены), но не должны быть зафиксированы?
Ситуация такова, что у меня есть подкаталог в репозитории, который содержит вещи, которые меня вообще не интересуют, поэтому я удалил его, чтобы он не отображался в автозаполнениях и т.п. (в IDE).
Но теперь, если я добавлю эту папку в .gitignore, просто ничего не изменится, все содержимое будет показано как удаленное по состоянию git.
Есть ли способ заставить git игнорировать это в любом случае?
(В качестве альтернативы, поскольку я использую git-svn, могу ли я зафиксировать изменения в локальном git и убедиться, что они не переданы в репозиторий svn?)
Ответы:
проверьте страницу руководства git-update-index и бит --assume-неизмененный и связанный с ним.
когда у меня есть твоя проблема, я делаю это
или конкретный файл
источник
git update-index --no-assume-unchanged config/database.yml
--assume-unchanged
.Более новая и лучшая опция - это то,
git update-index --skip-worktree
что не будет потеряно при аппаратном сбросе или новом изменении после пулла.См. Справочную страницу по адресу http://schacon.github.com/git/git-update-index.html.
И сравнение на http://fallengamer.livejournal.com/93321.html
источник
skip-worktree
, поиск этих файлов становится немного громоздким. Единственный способ, которым я знаю, этоgit ls-files -v |grep -v '^H'
. Кроме того, многие инструменты GUI не знают об этой функции и могут выдавать забавные ошибки, например,checkout
из-за «скрытых» измененных файлов.Используйте этот код
источник
Отслеживаемые файлы нельзя игнорировать, поэтому вам придется сначала удалить их из индекса. Добавьте,
.gitignore
который игнорирует ненужные каталоги, затем удалите их и удалите все отставшиеgit rm --cached
.источник
Что я обычно делаю, так это
источник