【发布时间】:2017-07-01 19:57:19
【问题描述】:
几天前,我有一个具有完全线性历史的master 分支。然后我创建了一个特性分支,我们称之为feat/feature-a。我在那个分支上工作,然后将其提交给代码审查以合并到master。
在审查feat/feature-a 时,我想开发另一个依赖于feat/feature-a 引入的代码的功能。所以我从feat/feature-a 分支创建了一个feat/feature-b 分支。
当我在 feat/feature-b 工作时,feat/feature-a 被合并到 master 中。所以现在master有了feat/feature-a介绍的代码。我现在想将 feat/feature-b 合并到 master 中,但是我得到了很多看起来像这样的合并冲突:
<<<<<<< HEAD
=======
// Some code that was introduced by feat/feature-b
>>>>>>> c948094... My commit message from feat/feature-b
我的猜测是,因为我将 feat/feature-a 更改到我的 feat/feature-b 分支,我现在正试图“复制”那些以合并冲突结束的更改。
我可以手动解决这些问题,但它们在数十个文件中多次存在,所以我想知道一个更好的解决方案,如果有的话。
【问题讨论】:
-
它是真正的合并、壁球、变基还是其他什么?
-
现在我正在通过
git rebase -i master将feat/feature-b与 master 重新绑定。我将feat/feature-b上的所有提交压缩为 1 个提交。 -
我想问的是,
feature-a的合并是真正的合并。但是,如果feature-b的合并不是真正的合并,那也会破坏它 -
是的。
feat/feature-a被压缩成一个提交,然后合并到 master,产生一个合并提交。 -
那个压缩的提交还在
feat/feature-a上吗?所以这是feat/feature-b的父级?
标签: git version-control merge merge-conflict-resolution