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 statusgit diff或其他命令执行时间。

你可以使用

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