【问题标题】:git apply changes from one commit onto another branchgit 将一个提交的更改应用到另一个分支
【发布时间】:2013-06-08 20:21:42
【问题描述】:

我想做一些类似于 git rebase 但不折叠并行提交的事情。

假设我有以下提交:

  B (bar)
 /
A-C-D (foo)

现在我想将 D 引入到分支 foo 中的 C 的更改,并将它们应用到分支 bar 中的 B。所以我最终得到以下结果:

  B-E (bar)
 /
A-C-D (foo)

提交 B 和 E 之间的差异等于提交 C 和 D 之间的差异。这可能吗?有没有办法在不创建补丁的情况下做到这一点?

【问题讨论】:

    标签: git rebase cherry-pick git-cherry-pick


    【解决方案1】:

    是的:

    git checkout -b mergebranch B
    git cherry-pick D
    

    【讨论】:

    • 要详细说明上面的答案:git checkout -b mergebranch B 使用分支B 作为起点创建一个名为mergebranch 的新分支。 git cherry-pick D 应用在分支D 的尖端提交引入的更改。
    【解决方案2】:

    如果您要从中挑选的分支上的最后一次提交(示例中为 foo)是合并提交,您可以使用 git cherry-pick branchname~1 指向特定的提交到樱桃挑选以获取提交是合并的父级。

    【讨论】:

      【解决方案3】:

      在我的情况下,我需要应用另一个分支的特定提交的更改。我通过像这样采摘它们来做到这一点: git cherry-pick COMMIT-HASH.

      【讨论】:

      • 注意:您需要在要应用提交更改的分支中。
      猜你喜欢
      • 2016-06-04
      • 2016-09-15
      • 1970-01-01
      • 1970-01-01
      • 2018-12-19
      • 2016-03-23
      • 2019-05-20
      • 2020-06-03
      • 2021-03-22
      相关资源
      最近更新 更多