2016-09-21 84 views
0

我在分支「主」。 我有這樣的git的歷史:正確的方法來清除主人的git歷史

333 (#82) 
444 (#83) 

然後我做了一些提交和恢復(222-> 111-> 010-> 789-> 456-> 123):

123 Revert "(#84)" 
456 Revert "(#81)" 
789 Revert 「(#81)" 
010 Revert "(#86)" 
111 (#86) 
222 (#84) 
333 (#82) 
444 (#83) 

我需要以某種方式要清除這些錯誤的步驟(222-> 111-> 010-> 789-> 456-> 123)回到歷史回到:

333 (#82) 
444 (#83) 

這將是確定的,如果我做的:

git rebase -i 333 

並且會拋出錯誤的提交? 然後

git push -f 
+0

您是否按提交併恢復? – Francesco

+0

[如何將Git存儲庫恢復到之前的提交?](http://stackoverflow.com/questions/4114095/how-to-revert-git-repository-to-a-previous-commit) –

回答

1

假設你沒有推提交和恢復,做到以下幾點:

git reflog 

這會給你OPS的列表(含所有將恢復並提交)在按時間順序排列。找到最後一個穩定的提交,並以[email protected]{somenumber}的形式找到它的頭部。然後回落到提交,請執行以下操作:

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

我想他已經知道散列,這是'333',所以命令將是'git reset --hard 333' – Francesco