Игнорировать измененные (но не зафиксированные) файлы в git? - PullRequest
168 голосов
/ 17 марта 2009

Могу ли я сказать git игнорировать файлы, которые были изменены (удалены), но не должны быть зафиксированы?

Ситуация такова, что у меня есть подкаталог в репозитории, который содержит вещи, которые меня вообще не интересуют, поэтому я удалил его, чтобы он не отображался в автозаполнениях и т. П. (В IDE). *

Но теперь, если я добавлю эту папку в .gitignore, просто ничего не изменится, все содержимое будет показано как удаленное по состоянию git.

Есть ли способ заставить git игнорировать его в любом случае?

(В качестве альтернативы, поскольку я использую git-svn, могу ли я зафиксировать изменения в локальном git и убедиться, что они не переданы в репозиторий svn?)

Ответы [ 5 ]

254 голосов
/ 17 апреля 2009

посмотрите справочную страницу git-update-index и бит --assume-неизмененный и связанный с ним.

когда у меня твоя проблема, я делаю это

git update-index --assume-unchanged dir-im-removing/

или определенный файл

git update-index --assume-unchanged config/database.yml
38 голосов
/ 29 февраля 2012

Более новый и лучший вариант git update-index --skip-worktree, который не будет потерян при аппаратном сбросе или новом изменении после нажатия.

См. Справочную страницу на http://schacon.github.com/git/git-update-index.html

И сравнение на http://fallengamer.livejournal.com/93321.html

6 голосов
/ 17 марта 2009

Отслеживаемые файлы нельзя игнорировать, поэтому вам придется сначала удалить их из индекса. Добавьте .gitignore, который игнорирует ненужные каталоги, затем удалите их и удалите все отставшие с git rm --cached.

5 голосов
/ 18 марта 2009

Что я обычно делаю, это

git stash

мерзавец, все остальное

применить git stash

git stash clear

3 голосов
/ 20 апреля 2017

Используйте этот код

git update-index --assume-unchanged file-name
...