Ответ 1
Вы можете сделать:
git update-index --skip-worktree A
Вот сценарий:
В моем рабочем каталоге у меня есть несколько файлов (позвольте им называть их A, B, C), которые я редактировал. Затем я запустил git update-index --assume-unchanged
в этих файлах. Теперь git status
возвращает пустое. Хорошо.
Теперь, если я делаю git reset --hard
, содержимое файлов A, B и C вернется к содержимому, прежде чем я его отредактировал и "предполагаю-не изменил".
Есть ли способ остановить git от фактического возврата файлов A, B и C и просто игнорировать их?
Спасибо,
Кен
Вы можете сделать:
git update-index --skip-worktree A
Вам нужно добавить запись файла .gitignore
для этих файлов, если вы хотите их игнорировать. Добавьте только файл .gitignore
, зафиксируйте его, и теперь вы проигнорируете любые изменения.
Однако, я думаю, вам нужно рассказать нам, почему вы это делаете, какое содержимое файлов, их характер (это артефакты?) - тогда вы получите правильный ответ.
Кроме того, update-index
с assume-unchanged
предназначен для повышения производительности, если ваше дерево в файловой системе вашей ОС занимает много времени, чтобы собирать изменения для определенного пути. Я бы не рекомендовал использовать его в вашем случае, если вы не игнорируете эти файлы из-за длительных git status
или git diff
или других времен выполнения команды.
Вы можете использовать
$ git stash
$ git reset --hard
$ git stash pop