如何将提交从一个分支复制到另一个分支

问题描述 投票:0回答:1

所以我想复制一个分支,但复制的分支基于主分支。

        main
         |
A---B---C   (main)
     \
      D---E   (branch A)

        main
         |
A---B---C   (main)
     \
      D---E   (branch A)
           \
            D'---E'   (branch B, copy of branch A)

        main
         |
A---B---C           (main)
     \     \
      \     D'---E'   (branch B, copy of branch A, rebased onto main)
       \
        D---E   (branch A)

有没有简单的方法可以做到这一点?除了正常的拉和推命令之外,我对 git 还很陌生。

我尝试使用带有复制标志的 git checkout,然后使用 --onto 标志进行变基,但是当我这样做时,来自分支 A 的所有提交都不属于分支 B。

git
1个回答
0
投票

您的第二个示例是不可能的(您无法在其自身之后复制提交 - 更改已包含在分支中)。

但是从第一张图到第三张图很简单:使用

git rebase
git cherry-pick
:

git checkout -b B A # create new branch B from A
git rebase main     # rebase commits of B to main
git checkout -b B main # create new branch B from A
git cherry-pick D E    # copy commits to your current branch (B)

变基和挑选都会创建new提交。

© www.soinside.com 2019 - 2024. All rights reserved.