我的分支看起來像這樣
M1 --- M2 --- M3 --- ............. --- M50 --- M51
\
\
P1 --- P2 --- P3 --- P4
\
\
C1 --- C2 --- C3
這里 M 是主提交 P 是父分支提交 C 是子分支提交
我正在開發一個功能(F1)并創建了一個分支(父)并提交到 P3。在這一點上,我開始研究新功能(F2),但由于我需要 P3 提交更改才能處理新功能,因此我在 P3 處創建了一個分支(子)。我收到了一條關于功能 F1 的評論評論,并在父分支中提交了 P4。
沒有沖突,所以我重新設定了子分支以獲得這樣的東西。
M1 --- M2 --- M3 --- ............. --- M50 --- M51
\
\
P1 --- P2 --- P3 --- P4
\
\
C1 --- C2 --- C3
現在我的父分支提交被壓縮并在 M52 與 master 合并。在這里,我對我的子分支會發生什么感到困惑。我想是這樣的。
M1 --- M2 --- M3 --- ............. --- M50 --- M51 -- M52(contains squashed commits of P1-P4)
\
\
C1 --- C2 --- C3
如果我的猜測是正確的,那么實作這樣的事情的正確命令應該是什么?如果我的猜測也是錯誤的,請讓我知道和下一步。
M1 --- M2 --- M3 --- ............. --- M50 --- M51 -- M52
\
\
C1 --- C2 --- C3
我相信它又是一個 on 的變基,但我不確定它到底應該是什么?許多團隊在 master 上作業并合并他們的分支,所以我不想自己冒險使用錯誤的命令。
提前致謝。
uj5u.com熱心網友回復:
在您的父分支的“擠壓和合并”之后,您的歷史將如下所示:
M1 --- M2 --- M3 --- ............. --- M50 --- M51 --- M52
\
\
P1 --- P2 --- P3 --- P4 # <- the 'Pxx' commits still exist
\
\
C1 --- C2 --- C3
您正在尋找的變基命令是:
git rebase --onto M52 P4 child
之后,您將不得不強制推送您的child分支以在遠程倉庫上更新它:
git push --force-with-lease origin child
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/341647.html
標籤:混帐 分支 git-squash
