我需要恢復整個分支合併爲單一提交像這樣的方式:恢復整個分支在一個提交
[topic]
o---o---o-------X
/
| [master]
---o---o---o
的承諾X
必須有國家像主題的master~2
(原點分支)
我的解決辦法是:
git rev-list --reverse master..topic | while read SHA; do
git revert -n ${SHA}
done
git commit -m "Reverted topic branch"
有沒有更好的(短)的解決方案?
本
的目的想象我有一種基於幾乎混帳流回購。
[release-3]
o---o---o---o
/ \ [fix-for-rc-3]
/ o---o---o
/
| [development]
---o---o---o
我有一個development
分公司,即將到來的release-3
分支和所謂的hot-fix-feature-for-rc-3
分支。在這個分支中,我正在做一些醜陋的黑客來完成我的發佈,但我根本不希望它在development
中,因爲更多的「正確」解決方案已經降落在此處,但由於某種原因無法應用到release-3
分支。所以,我必須做到以下幾點...
[release-3]
o---o---o---o--------------------M
/ \ [fix-for-rc-3]/
/ o---o---o----------------X
/ \
| \[development]
---o---o---o---------------------------------D
我必須合併fix-for-rc-3
爲release-3
(M點),然後做一個「恢復 - 所有這狗屎」提交(X點),並把它合併做development
(D點),所以這段代碼永遠不會到達這裏,即使整個release-3
分支合併到development
,然後釋放完成。
這就是爲什麼我需要恢復整個分支...
的問題
雖然其根源問題得到解決,但仍有問題得到一個分支原因叉點」,如果topic
是已合併到release
merge-base
將失敗。
您實際上並不需要恢復更改以實現此目的。您可以使用「我們的」策略將'fix-for-rc-3'合併到'development'中。或者更好的是,使用「我們的」策略將'release-3'合併到'development'中。 –
@kan不會全部通過上述工作流創建,不是嗎? 'release-3'中的每個提交都是分支合併。我所需要做的就是將它們全部合併爲'development'(可能帶有'-s ors')。 – Olegas
@JohnBartholomew據我所知,他需要合併到'development'的'release-3'中,然後使用'ours'將'fix-for-rc-3'合併到一起。然後將'fix-for-rc-3'合併到'release-3'中。 – kan