【问题标题】:Git: Merge a Commit into a different BranchGit:将提交合并到不同的分支
【发布时间】:2014-07-17 13:15:29
【问题描述】:

所以我有3个分支;

  • develop - 我的持续开发分支
  • version_1 - 发布分支
  • version_2 - 发布分支

我必须在 version_2 上做一个修补程序才能重新发布该版本,这是 2 个文件中的 2 行更改,非常小。

我想将该修复应用到 version_1develop

所以我;

git checkout version_1
git merge <commit checksum>

我认为提交只包含更改,因此只会应用这些更改。但是合并会发生冲突,因为它会尝试更新两个分支之间的所有更改。

有没有办法仅将小提交中的更改合并/移动/应用到其他分支?

我可以在这些分支上手动重新实施修补程序,但这似乎很辛苦,尤其是在可能需要重新应用更多修补程序并将其推广到所有其他分支时。

Cheers, Will

【问题讨论】:

    标签: git github merge commit git-merge


    【解决方案1】:

    只合并一个或几个提交意味着使用git cherry-pick

    首先取消您刚刚执行的合并:参见“Undo a Git merge?”。
    那么:

    git checkout version_1
    git cherry-pick <commit checksum>
    

    这可以应用于多个提交或一系列提交:请参阅“How to cherry pick a range of commits and merge into another branch”。

    【讨论】:

    【解决方案2】:

    你需要cherry-pick那些提交。

    切换到要添加提交的分支:

    git checkout develop
    

    然后,cherry-pick 提交。首先做一个git reflog 并获取该修补程序提交的SHA-1

    那么,当你在分支developcherry-pick it

    git cherry-pick <commit SHA obtained above>
    

    在另一个分支version_1上执行类似的操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-05
      • 1970-01-01
      • 1970-01-01
      • 2021-11-03
      • 1970-01-01
      • 2016-01-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多