git update-index --assume-неизменный и git сброс - PullRequest
37 голосов
/ 24 мая 2011

Вот сценарий:

В моем рабочем каталоге у меня есть несколько файлов (назовем их A, B, C), которые я отредактировал.Затем я запустил git update-index --assume-unchanged на этих файлах.Теперь git status возвращается пустым.Хорошо.

Теперь, если я сделаю git reset --hard, содержимое файлов A, B и C вернется к содержимому до того, как я его отредактировал, и "предположил, что оно осталось неизменным".

Есть ли способ не позволить git фактически вернуть файлы A, B и C и просто игнорировать их?

Спасибо,

Кен

Ответы [ 3 ]

46 голосов
/ 24 мая 2011

Вы можете сделать:

git update-index --skip-worktree A
1 голос
/ 12 апреля 2017

Вы можете использовать

$ git stash
$ git reset --hard
$ git stash pop
1 голос
/ 24 мая 2011

Вам нужно добавить запись .gitignore для этих файлов, если вы хотите их игнорировать.Добавьте только файл .gitignore, зафиксируйте его, и теперь вы будете игнорировать любые изменения в них.

Однако, я думаю, вам нужно сообщить нам, почему вы это делаете, каково содержание файлов, характериз них (это артефакты?) - тогда вы получите правильный ответ.

Кроме того, update-index с assume-unchanged предназначен для увеличения производительности, если ваше дерево в файловой системе вашей ОСтребуется много времени, чтобы собрать изменения для определенного пути.Я бы не рекомендовал использовать его в вашем случае, если вы не игнорируете эти файлы из-за длительных git status или git diff или других времен выполнения команд.

...