2012-10-22 77 views
0

我想做到以下幾點,以我的本地副本:如何將我的本地GIT完全重置爲之前的提交?

  1. 放棄所有更改我所做的一切。
  2. 刪除所有已添加的新文件。
  3. 將我的本地副本重置爲以前的提交ID,以便只有在提交時存在的文件存在於本地副本中。

我應該運行類似以下的東西嗎?

git checkout ID . 
git clean -fd 

回答

5

像這樣:

git reset --hard [sha] 

注意,它不會刪除未跟蹤文件,因爲Git的什麼都不知道關於他們。當你運行這個命令時,你的所有已執行和未執行的更改都會丟失,所以請注意這一點。

如果不慎運行此,想找回老犯然後git reflog會告訴你的輸出,諸如這樣的:

86b46fd [email protected]{0}: 86b46fd: updating HEAD 
a2b03fa [email protected]{1}: commit: [commit message] 

[email protected]{1}提交這裏是老沙。使用重置回它:

git reset --hard [email protected]{1} 
+0

你能添加什麼是失去了一個警告 - 這是類似於'RM -rf'沒有備份 –

+0

'git的清潔-f -d -x'將清除所有未跟蹤的文件(甚至那些在所需的提交之前添加的文件)(http://stackoverflow.com/a/9746440/422353) – madth3

+0

@ madth3 Call me stupid but WTF does do with the OP with OP's question? –

相關問題