2017-10-13 152 views
1

我有多次提交在主和所有這些提交被推送到遠程ALREADY!git恢復到多個提交之前已經推動

例如,

目前頭是ABCDE,但我想回去9kjhfa。 如何恢復到9kjhfa。 有兩種情況可能對我來說:

1)或者同時保持ABCDE和askdjf之間的所有提交,從ABCDE到9kjhfa回去,然後過了一段時間我也去前進,從9kjhfa爲abcde

2)還是不要讓ABCDE和askdjf之間提交和剛剛回去從ABCDE到9kjhfa

commit abcde    <-- current HEAD 
commit easlk 
    ... 
commit iwqeur 
    ... 
commit askdjf 
    ... 
commit 9kjhfa    <-- want to go back to this point 

git revert 9kjhfa不工作 我搜索了計算器和谷歌,但找不到一個明確的辦法做到這一點。

+1

最簡潔的方法是隻添加一個提交以反轉這些提交。這是最乾淨,最簡單的修復方法。儘管強制推送當然可以完成,但要放棄這些提交,簡短的答案是:不要,除非您是回購的唯一用戶。 –

+0

你需要重置,而不是恢復 – Alexan

回答

0

你可以做一個復位併力推到遠程:

git reset --hard <commit hash> 
git push -f <remote name> <branch name> 
0

我做到了以下列方式:

git checkout 9kjhfa 
git branch revert 
git checkout revert 
git push origin revert:master -f 

注意:這將刪除git的歷史提交,你不能讓他們回來。

1

不要做,如果你需要保留任何提交的工作,

--hard扔掉所有未提交更改

git reset --hard <commit id here> 

如果你想保持你的變化用軟

git reset --soft <commit id here> 

恢復遠程主分支

git push <remote name> <branch name> -f