2015-10-20 107 views
1

使用Mercurial的hg revert -aC或長選項名稱,hg revert --all --no-backup我可以重置我的工作副本。我該如何在git中恢復-aC?

I.E.,我曾經分支,它會更新工作副本,作爲本地回購包含的該分支上的最新提交。

特別

  • 如果我犯我的本地庫,它絕對不會拋棄這些提交。
  • 它將刪除未被忽略的未被忽略的文件。
  • 它將只留下被忽略的文件。

我發現這是使用回購協議時最基本的基本命令之一。我經常會對一些文件做一些探索性的修改,然後想放棄這一點,以便從原始集合開始真正的工作。

我該怎麼做,這git


這被記錄爲How do I use 'git reset --hard HEAD' to revert to a previous commit?的副本。這個問題(以及它所鏈接的問題)的答案是回答這個問題的有用資源。但是,這個問題特別要求一個mercurial用戶如何使用git來實現其部分工作流程。

+1

可能重複[如何使用'git reset --hard HEAD'恢復到以前的提交?](http://stackoverflow.com/questions/9529078/how-do-i-use-git-重置難題返回到先前提交) –

+0

@TimCastelijns謝謝 - 我來看看。我不認爲這是重複的:我非常想從一個尋找git等價物的mercurial用戶的角度來問這個問題,而不是一個查詢命令確切用法的git用戶。我懷疑,如何在現有的SO答案中實現這種特定效果,幾乎可以肯定是一個很好的描述。這個問題的一個很好的答案可能只是一個簡單的和現有答案的鏈接。 – Benjohn

+0

嗨@TimCastelijns謝謝,我相信我的問題與鏈接的不同 - 儘管從那裏的鏈接帶我到[答案](http://stackoverflow.com/a/12049323/2547229),這將很好地工作問題,所以我想我可以自己回答。我不認爲我可以編輯這個問題,使它更清楚地表明這不是重複的:-)如果你有建議,我一定會考慮它們! – Benjohn

回答

1

要重置你的工作拷貝頭:

git reset --hard HEAD 

要刪除未跟蹤文件,但不能忽略的文件:

git clean -f 

警告:這些命令將永久性地恢復所有未提交的更改和刪除所有未跟蹤的文件!

但是,以這種方式使用它們將保留您尚未推送的任何本地提交。

+0

謝謝!你能澄清兩件事:1.這些(永遠)中的任何一個都會刪除我所做的目前只有本地的提交。 2.這些刪除*忽略*文件嗎?我絕對想保留忽略的文件。 – Benjohn

+1

@ Benjohn 1.否。本地提交不會被刪除。 2.否。*忽略*文件不會被刪除。你可以使用'git clean -n'來看看會做什麼。 – sergej

+0

我會編輯以包含該信息,如果這對您沒有問題? – Benjohn