【问题标题】:Merge several branch commits to master合并多个分支提交到 master
【发布时间】:2017-04-26 18:49:12
【问题描述】:

是否可以将一个分支中的多个但不是所有 git 提交合并到 master 分支?

例如,假设我在分支“test”中添加了几个提交(1,2 和 3)。它们都与文件test.py相关,但没有冲突。 如何合并提交 1 和 2,但不合并提交 3

我最好想要一个 GUI 工具。

【问题讨论】:

  • git merge 合并一个 [见脚注] commit。因此,对于这种特殊情况,只需 git merge 第二次提交,而不是第三次。但是,您的问题形式表明您误解了 git merge 的作用,因此您应该阅读它。 (也许这就是你被否决的原因?我没有投反对票,我不知道是谁投的。)[脚注] Git 有它所谓的“章鱼合并”,它合并了多个提交,但这意味着完全不同的东西从你的想法。

标签: git github merge


【解决方案1】:

如果提交按您的问题中的顺序排列,如评论中提到的 torek,您应该只使用 git merge <2>(其中 <2> 是在您的问题中引用您所谓的提交 2 的任何方式:例如SHA-1 哈希或 test^ 用于分支 test 中的倒数第二个提交。

更一般地说,您可以使用git cherry-pick 来挑选test 中特定提交所做的更改,如下所示:

git checkout master
git cherry-pick <1>
git cherry-pick <2>
... #However many more you want to cherry pick

请注意,这实际上不是合并:它会在 master 分支上重放您的提交。但是,它必须是这样的:合并分支的一部分是没有意义的。如果您希望它改为合并,您可以在testmaster 不同的提交处创建一个新分支,樱桃选择您想要的提交,然后合并该分支。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-21
    • 1970-01-01
    • 2020-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-03
    • 1970-01-01
    相关资源
    最近更新 更多