2017-01-13 151 views
0

我與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文件?難道是我有一些誤解?

提前致謝!

回答

1

如果New.java是一個從未上演過的新文件,git reset永遠不會刪除該文件,因爲git不知道該如何處理它。實際上,New.java是一個未跟蹤的文件,git在將其添加到舞臺之前不會對此文件執行任何操作。

+0

非常感謝,這就是原因! –

3

我不知道SourceTree,但我想'重置全部'就像做git checkout .這將恢復所有跟蹤的文件,像你所描述的。要刪除未跟蹤的文件,命令行等效項將爲git clean -f,或者如果目錄也受到影響git clean -fd並且還包括被.gitignore和類似git clean -fdx忽略的文件。所以我想你在SourceTree中搜索Clean All選項來擺脫未跟蹤的文件。