【问题标题】:Correct git operation to merge portion of a branch正确 git 操作以合并分支的一部分
【发布时间】:2015-06-03 09:30:45
【问题描述】:

我有一个 git 分支,我正在开发一个功能,该功能需要对代码中相关性较低的部分进行更改。

我不得不停止在这个分支上的开发,以便在另一个分支上处理优先级已更改的功能。此分支使用与第一个功能分支相关性较低但发生更改的代码部分。

第一个功能还没有完成,但它在历史上的某个时间点上是稳定的,因此我想将到目前为止的所有更改与 master 合并,但不是任何以后的提交,以便新的第二个功能分支使用与第一个功能分支相关性较低的已更改代码的较新结构。

master A---B---C---D
            \
f1           E---F---G---H

在上面的例子中,H 不稳定,但直到 G 的工作是稳定的,并且 D 的新分支应该建立在这项工作而不是旧工作的基础上。

所以对我来说,似乎我想在 G 合并到 D,以及 G 的所有历史......这是正确的想法吗?

这种操作在 git 术语中叫什么?也许从 E 到 G 的提交范围中挑选一个樱桃?

或者也许可以从 G 分支我的新分支,然后在 D 上变基? 谢谢

【问题讨论】:

    标签: git merge gitlab


    【解决方案1】:

    我想你只是想将 G 合并到 D 中:

    git checkout D
    git merge G
    

    之后您的历史记录将如下所示:

    master A---B---C---D---M <-- HEAD
                \         /
    f1           E---F---G---H
    

    我建议不要在 D 之上重新调整 E-G,因为以后将 H 也合并到 master 会更加困难。

    【讨论】:

    • git merge G 的示例中,G 只是提交哈希? (对不起,仍然是 git 的位 n00b)
    猜你喜欢
    • 1970-01-01
    • 2021-01-18
    • 2016-09-20
    • 2012-09-18
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 2018-08-06
    • 1970-01-01
    相关资源
    最近更新 更多