git update-index --assume-unchanged和git reset

时间:2011-05-23 23:11:23

标签: git reset

以下是该方案:

在我的工作目录中,我有许多我编辑过的文件(我们称之为A,B,C)。然后我在这些文件上运行git update-index --assume-unchanged。现在git status返回空白。好。

现在,如果我执行git reset --hard,文件A,B和C的内容将在我编辑它们之前恢复为内容,并“假设 - 保持不变”它们。

有没有办法阻止git实际还原文件A,B和C,只是忽略它们?

谢谢,

3 个答案:

答案 0 :(得分:46)

你可以这样做:

git update-index --skip-worktree A

答案 1 :(得分:1)

如果要忽略这些文件,则需要为这些文件添加.gitignore个文件条目。只添加.gitignore文件,提交它,您现在将忽略它们的任何更改。

但是,我想你需要告诉我们你为什么这样做,文件的内容是什么,它们的性质(它们是文物吗?) - 然后你会得到正确的答案。

此外,如果您的操作系统文件系统上的树需要很长时间来收集特定路径的更改,则update-indexassume-unchanged用于提高性能。我不建议在您的情况下使用它,除非由于冗长的git statusgit diff或其他命令执行时间而忽略这些文件。

答案 2 :(得分:1)

您可以使用

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