如何使工作树与HEAD完全匹配? (包括删除未跟踪的文件)

时间:2013-01-08 15:54:37

标签: git

git reset --hard HEAD恢复对工作树中的文件所做的任何更改,以使它们匹配head。但是,它不会触及未跟踪的文件。 git clean -df删除所有未跟踪的本地文件和目录。

是否有一种简单的方法可以使跟踪的文件与HEAD匹配,还可以删除未经跟踪的文件,这些文件适用于所有情况?

(你不能一个接一个地运行这两个命令,因为如果存储库没有提交,git reset --hard HEAD会失败。可能有一些方法可以检查reset是必要的,但我想它很狡猾。)

我认为这是一个同等的问题:如何使我的工作树与存储库的新git clone的结果相同[*]?

[*]我很高兴被忽略的文件不受影响。

1 个答案:

答案 0 :(得分:1)

没有一个命令,但可以像你提到的那样使用:

git reset --hard HEAD && git clean -fdx

相继出现。这可能不适用于空存储库,但空存储库并不是git中的一等公民(即克隆空存储库会产生警告)。

如果您必须将此工作用于空存储库,请简单地翻转命令:

git clean -fdx && git reset --hard HEAD

clean在任何情况下都应该运行,而reset可能会失败而没有后果。