2013-10-22 72 views
0

究竟是什麼區別?git-reset與git-clean的區別

我的目標是把工作樹完全恢復到當它說「沒有變化」的狀態 - 沒有修改或刪除,沒有新的未跟蹤文件,什麼都沒有。

我不關心的.gitignore-ED文件。

+0

所以要回到最後的好提交和擺脫未跟蹤的文件我必須運行2命令? 'git reset --hard HEAD'和'git clean -f'? – Geo

回答

4
git-reset 

將當前HEAD重置爲指定狀態。

爲如:git reset --hard HEAD^ - 這將刪除前提交

git-clean 

使用,如果你想放棄所有未提交的更改從工作目錄

2

刪除未跟蹤的文件/目錄:

git reset --hard head 

這將基本上恢復Git知道的所有文件到他們上次提交的狀態。

如果你想刪除所有的Git不知道這些文件:

git clean -dxf 

這將刪除被忽略或不跟蹤一切。

+0

我的測試服務器上有一個掛鉤,當任何人推送回購服務器時,掛鉤會自動從回購中拉出。但是,如果測試服務器上的工作樹不乾淨,它會中止。所以要重置樹並返回到最後一個好提交併擺脫未跟蹤的文件,我必須運行2個命令:'git reset --hard HEAD'和'git clean -f',對不對? – Geo

+0

只要'git reset --hard head'應該可以工作。 Git不會抱怨未跟蹤的文件。 – Abizern

+0

除非他們衝突? – Geo