重置工作副本中的所有更改

时间:2017-01-13 13:09:11

标签: git atlassian-sourcetree sourcetree

我正在使用SourceTree,我想重置我在工作副本中所做的所有 更改

对于某些测试,我创建了三个Java类文件,一个新文件,一个我已更新的文件,以及我从工作副本中删除的最后一个文件:

New.java
Update.java
Remove.java

全部重置适用于已更新和已删除的类文件,但不适用于新文件:

enter image description here

enter image description here

重置后,我必须手动删除New.java类:

enter image description here

总结

全部重置后,Update.java文件上的更新消失,已恢复已删除的Remove.java文件。 完美!我唯一不理解的是为什么我必须手动删除新的New.java文件?可能是我有一些误解吗?

提前致谢!

2 个答案:

答案 0 :(得分:3)

我不知道SourceTree,但我猜'重置全部'就像做git checkout .一样,它会恢复你描述的所有跟踪文件。要删除未跟踪的文件,命令行等效项将为git clean -f,或者目录也会受到影响git clean -fd,并且还包括.gitignore和类似git clean -fdx忽略的文件。因此,我猜您在SourceTree中搜索Clean All选项以删除未跟踪的文件。

答案 1 :(得分:1)

如果New.java是一个从未上过的新文件,git reset将永远不会删除该文件,因为git不知道如何处理它。实际上,New.java是一个未跟踪的文件,在将此文件添加到舞台之前,git不会对此文件执行任何操作。