[英]How can I rebase after a merge?
我正在閱讀 Pro Git 的書,並被困在變基上。
所以兩個分支已經合並了。 然后書上說,在我們進行合並后,我們仍然可以改變主意,將 C4 重新設置為 C5,如下所示:
但我試圖復制變基,發現在合並后,如果我嘗試,我不能再變基:
git 結帳 branch_on_c4
git rebase branch_on_c5
我沒有新的C4'
提交,消息是:
首先,倒帶頭在上面重播你的工作
申請:添加
使用索引信息重建基礎樹
回退到修補基礎和 3 路合並
無變化——已應用補丁**
如果我沒有先合並兩個分支,那么在 C5 上重新定位 C4 是沒有問題的。 但是一旦我完成了合並,我就不能再變基了,那么作者如何或作者在合並后使用什么命令來進行變基呢?
tl;博士
合並后如何變基?
你不需要,這不是書上說的。 如果您不喜歡合並,只需將其丟棄,然后改為rebase 。
然后書上說,在我們進行合並后,我們仍然可以改變主意變基
不,它沒有。
它說
...如果不是在[ 發生這種情況]時進行合並,而是運行
git rebase teamone/master
...
也就是說,而不是合並,而不是after 。
因此,您要么必須運行fetch
並提前識別潛在問題,要么運行正常的 merge pull
,確定它是一團糟並將其扔掉以重新開始:
git reset --hard HEAD@{1}
(我傾向於避免使用HEAD~1
語法進行合並,因為我不想考慮哪個父級是哪個父級 - “HEAD 的先前值”的 reflog 語法更簡單 IMO)。
我假設您在這里參考圖 45 和圖 46: Git 分支變基
接下來,推送合並工作的人決定將 go 退回並重新調整他們的工作; 他們執行 git push --force 以覆蓋服務器上的歷史記錄。 然后,您從該服務器獲取,降低新的提交。
該人很可能做了一些事情來撤消合並,例如:
git reset --hard HEAD~1
然后可以執行rebase和push --force 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.