Подтвердить что ты не робот

Git update-index - без изменений и git reset

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

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

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

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

Спасибо,

Кен

4b9b3361

Ответ 1

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

git update-index --skip-worktree A

Ответ 2

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

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

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

Ответ 3

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

$ git stash
$ git reset --hard
$ git stash pop