2017-06-07 324 views
0

我的用例非常常見。Git恢復提交併添加更改,即使在提交更多提交後

我添加了一個提交,通過我的構建系統。構建系統上的一些提交後測試失敗。系統配置爲恢復這樣的提交。

因此該系統還添加了Reverting back revision my-commit

現在,我添加了修正以糾正構建。但是在別人推倒我之前,其他人做了2次提交之後成功進入的提交。

所以我現在的狀態是:

$ git log 

commit good-commit1 
author: good-dev1 
... 

commit good-commit2 
author: good-dev1 
... 

commit good-revert-commit 
author: system 
... 

commit my-bad-commit 
author: me 
... 

我在my-bad-commit修改兩個good-commit1good-commit2變化的文件。

如何在my-bad-commit之上添加我的修復程序,或者還原good-revert-commit並在其上添加修復程序,然後重新應用其他開發人員的良好提交?

注意:我們的系統不允許-f(強制推送)到主分支。

+0

由於'master'分支不允許強制推送,因此只能使用'git revert'提交歷史記錄的頂部。否則,您可以使用'git rebase -i'或替換當前的'master'分支等。 –

+0

答案能幫助您解決問題嗎?如果是,請標記它。它會幫助其他有類似問題的人。 –

回答

1

git revert good-revert-commit -n 

-n剛剛恢復的復歸是--no-commit這裏的代名詞。

因此,這些更改將在索引中,然後git add您的額外更改,完成提交和推送。