git update-index –assume-unchanged和git reset
这是情景:
在我的工作目录中,我有一些我编辑的文件(我们称之为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
文件,提交它,你现在将忽略对它们的任何改变。
不过,我认为你需要告诉我们为什么你这样做,文件的内容是什么,它们的性质(它们是否是神器?) – 然后你会得到正确的答案。
此外,如果您的操作系统文件系统中的树需要很长时间才能收集特定path的更改,则使用assume-unchanged
update-index
是为了提高性能。 我不会推荐在你的情况下使用它,除非你忽略这些文件由于冗长的git status
或git diff
或其他命令执行时间。
你可以使用
$ git stash $ git reset --hard $ git stash pop