git reset --hard HEAD
恢复对工作树中的文件所做的任何更改,以使它们匹配head。但是,它不会触及未跟踪的文件。 git clean -df
删除所有未跟踪的本地文件和目录。
是否有一种简单的方法可以使跟踪的文件与HEAD匹配,还可以删除未经跟踪的文件,这些文件适用于所有情况?
(你不能一个接一个地运行这两个命令,因为如果存储库没有提交,git reset --hard HEAD
会失败。可能有一些方法可以检查reset
是必要的,但我想它很狡猾。)
我认为这是一个同等的问题:如何使我的工作树与存储库的新git clone
的结果相同[*]?
[*]我很高兴被忽略的文件不受影响。
答案 0 :(得分:1)
没有一个命令,但可以像你提到的那样使用:
git reset --hard HEAD && git clean -fdx
相继出现。这可能不适用于空存储库,但空存储库并不是git中的一等公民(即克隆空存储库会产生警告)。
如果您必须将此工作用于空存储库,请简单地翻转命令:
git clean -fdx && git reset --hard HEAD
clean
在任何情况下都应该运行,而reset
可能会失败而没有后果。