我正在使用SourceTree,我想重置我在工作副本中所做的所有 更改。
对于某些测试,我创建了三个Java类文件,一个新文件,一个我已更新的文件,以及我从工作副本中删除的最后一个文件:
New.java
Update.java
Remove.java
全部重置适用于已更新和已删除的类文件,但不适用于新文件:
重置后,我必须手动删除New.java
类:
总结
全部重置后,Update.java
文件上的更新消失,已恢复已删除的Remove.java
文件。 完美!我唯一不理解的是为什么我必须手动删除新的New.java
文件?可能是我有一些误解吗?
提前致谢!
答案 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不会对此文件执行任何操作。