簡體   English   中英

Git - 壓縮早期提交並在不同的分支上反映它

[英]Git - squashing earlier commits and reflecting it on different branches

我對Git很新,而且我正在嘗試壓制一系列早期的提交,但是我在所有分支上都有這種“擠壓”的反應時遇到了問題。

我從以下樹開始:

A---->B---->C---->D---->E---->F---->G---->H (Branch 1)
                                          \
                                           \
                                            \
                                             I---->J---->K (Branch 2)

我想'壓縮'提交C,D,E和F,但我希望這個'壓縮'能夠反映在分支1和分支2上。

我嘗試了'git rebase -i HEAD~7'並進行了必要的更改(在分支1上),但這是我結束的:

A---->B---->C'---->G---->H (Branch 1)
      \
       \
        \
         C---->D---->E---->F---->G---->H---->I---->J---->K (Branch 2)

當我想得到的是:

A---->B---->C'---->G---->H (Branch 1)
                          \
                           \
                            \
                             I---->J---->K (Branch 2)

我究竟做錯了什么? 有沒有辦法達到我想要的結果?

提前致謝。

好吧,這比我的評論中的cherry-pick答案更好,因為如果你有很多提交cherry-pick ,這可能相當繁瑣(它也避免了第三個分支的創建)。

最快的事情是兩個rebase s。 第一個是你指定的那個。 然后你checkout分支2並在你的rebase d分支1的頂部重新定義,刪除你不想要的提交( CDEFGH )。 所以基本上,你有:

git checkout <branch 1>
git rebase -i HEAD~7

您已經做過,其次是:

git checkout <branch 2>
git rebase -i <branch 1>

打開默認編輯器時,只需刪除與提交CH關聯的行。 結果將是您正在尋找的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM