2014-11-13 63 views
0

當地主分支工作:撤消一個git的復位 - 硬起源/主

git commit -m "Lots of important commits" 
git reset --hard origin/master 

我怎樣才能找回已經丟失的git的復位(從遠程)的結果提交?

編輯:注意這不是關於檢索未提交的更改。

+0

您無法從遠程倉庫拉的代碼,你只有它致力於當地的一個,然後將其復位到一臺遠程。代碼從未被推送到遠程。我試圖在硬重置之前總是創建一個類似「temp」的分支,只是因爲我有一些引用這些提交以防萬一我意識到我需要它們。 – Turch

+1

[你幾乎搞砸了](http://stackoverflow.com/a/9530204/1188035) – sjagr

+1

不是這個副本,因爲這個例子試圖恢復提交,而不是未提交的更改。 –

回答

10

如果你犯了它,什麼都不會丟失。

如果你有提交的參考,你可以只是git reset --hard <sha>到那個確切的提交。

如果您不這樣做,您可以在執行硬重置之前始終使用git reflog來檢索sha。

例如,如果git reset --hard origin/master是你運行一個命令,你可以做

git reset [email protected]{1}