如何在我的工作副本中排除非指数的变更?


当前回答

你有一个非常简单的 git 命令 git checkout.

其他回答

如果您不感兴趣保留未完成的更改(特别是如果未完成的更改是新的文件),我发现这个方便:

git diff | git apply --reverse

如果几乎不可能删除文件的修改,你是否考虑忽略它们? 如果这个声明是正确的,并且你不会在开发过程中触摸这些文件,这个命令可能有用:

git update-index --assume-unchanged 文件_to_ignore

无论你的 repo 是什么状态,你总是可以重新设置到任何以前的承诺:

git reset --hard <commit hash>

这将消除随后发生的所有变化。

如果您只是想删除现有文件的更改,请使用支票(文档在这里)。

git checkout -- .

没有分支是指定的,所以它检查了当前分支. 双希芬(--)告诉Git,接下来的应该作为其第二个论点(路),你错过了一个分支的规格。

如果您想要从您的最后订单中删除添加的文件,请使用清洁(文档在这里):

git clean -i 

选项 -i 启动一个互动清洁,以防止错误的删除。 还有许多其他选项可用于更快的执行; 查看文档。

如果您想将更改转移到持有空间以获得后续访问,请使用 stash (在这里文档):

git stash

所有更改将转移到 Git 的 Stash,以便随后访问。 有几个选项可用于更色彩的 Stash; 查看文档。

我有一個奇怪的情況,在那裡一個檔案總是無關,這有助於我解決。

git rm.gitattributes git add -A git reset --hard