原始:
A---B---C(master)
/
D---E---F---G(server)
/
H---I(client)
H, I 從 server 分支分出來,但不依賴 server,client已經完工,想單獨提取 H, I 洐合到 master, 於是執行 git rebase --onto master server client
結果是:
A---B---C(master)---H---I(client)
/
D---E---F---G(server)
/
H---I
PS: 不要覺得例子奇怪,它來自 https://git-scm.com/book/en/v2/Git-Branching-Rebasing#More-Interesting-Rebases
以上是 rebase 的操作,採用 merge 的操作,執行 git merge --squash client master; git commit
, 結果是:
A---B---C(master)---J(D+H+I)
/
D---E---F---G(server)
/
H---I(client)
那麼問題來了:
有沒有類似 git merge --squash server...client master
或 git rebase --onto master server client --squash
或
或
git rebase --onto master server client --squash🎜 或是: 實現的效果如下:🎜A---B---C(master)---J(H+I)
/
D---E---F---G(server)
/
H---I(client)
🎜PS: 我知道可以先rebase --onto 到 temp 分支,再 merge --squash 到 master,但這太不優雅了不是? 🎜
已有答案,用 rebase --interactive 做 squash 標記最好,居然忘了:
或
看各位還有否其它思路