【问题标题】:How to cherry Pick branch [closed]如何樱桃采摘分支[关闭]
【发布时间】:2022-01-07 13:22:37
【问题描述】:

我正在寻找一种方法来挑选一个分支并将其合并到另一个分支中。樱桃挑选的默认行为是挑选一个特定的提交,但是,我正在寻找挑选属于分支的更改。

请查看以下详细信息以获得更好的解释。

假设我们有 5 个分支,即 B1、B2、B3、B4 和 B5。 步骤1:B1合并到B2中,然后删除B1。 第二步:将B3合并到B4中,然后删除B3。 第三步:将B2合并到B4中,然后删除B2。 第 4 步:现在我有了 B4 和 B5,其中 B4 包含在 B1、B2 和 B3 中所做的所有更改。现在我想从 B4 中挑选 B2 更改(即分支 B2)并将它们合并到 B5 中。

我们有什么方法可以做到这一点吗?

亲切的问候

谁能帮帮我

【问题讨论】:

标签: git git-branch


【解决方案1】:

cherry-pick 仅用于单数提交,分支指向单数提交。

您可以使用以下方法将一个分支中的所有提交合并到另一个分支中。

注意:在您选择哪种方法之前,我建议在您要合并的当前分支所在的同一点创建一个辅助分支,以便您可以将其丢弃并进行测试 .

使用git checkout -b new-branch current-branch。将current-branch 替换为现有分支,将new-branch 替换为新命名的分支。

变基

这更难,但更干净。它还使您可以更好地控制将哪些提交应用于新分支。

这种方法会回退到您当前分支的基础,并按顺序逐一应用提交。

您还可以使用-i 以交互方式重新设置您的提交,以选择您想要“应用”或合并到所述分支的提交。

git rebase -i branch-to-merge-with

合并

这要简单得多,并将一个分支与另一个分支合并。请记住,这会将“粉碎”提交一起提交,因此您需要在创建合并提交之前一次性解决所有冲突。

git merge branch-to-merge-with

【讨论】:

    【解决方案2】:

    樱桃采摘意味着您从一个分支中选择一个提交并将其应用到另一个分支。

    因此,您应该查看日志并从 B4 获取您感兴趣的 B2 提交哈希。

    确保您位于要将提交应用到的分支上。

    执行以下操作:

     git cherry-pick <commit-hash>
    

    如果你想要多次提交:

    要挑选从提交 A 到提交 B(其中 A 比 B 更早)的所有提交,运行:

    git cherry-pick A^..B
    

    如果你想忽略 A 本身,运行:

    git cherry-pick A..B
    

    How to cherry-pick multiple commits

    【讨论】:

      猜你喜欢
      • 2012-12-07
      • 2021-07-16
      • 1970-01-01
      • 2011-03-02
      • 1970-01-01
      • 1970-01-01
      • 2017-04-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多