预测特征分支在主分支中合并时的合并冲突。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了预测特征分支在主分支中合并时的合并冲突。相关的知识,希望对你有一定的参考价值。
假设我有一个主分支和三个特性分支。在一个冲刺结束时,所有这些特性都准备好了,我想把它们全部合并到主分支。
merge feature1 into master => OK
merge feature2 into master => OK
merge feature3 into master => CONFLICTS!
虽然没有提交到主分支,但是仍然有一个合并冲突,因为feature3和feature1或者feature2冲突。
有什么工具可以预测这种合并冲突(看看哪些特性分支会产生合并冲突)?如果我可以预测到这一点,我就可以决定只将feature1和feature3合并到主分支。
谢谢
预测合并冲突的方法是进行合并。1 使用一个临时分支来做这件事。
git checkout -b test master
git merge feature1
git merge feature2
git merge feature3
如果一切顺利,合并就会成功。 现在,如果你愿意,你可以使用这个最终的合并结果来进行 master
本身,通过做一个 快进 搬家 master
相称 test
:
git checkout master
git merge --ff-only test # --ff-only means "fail if fast-forward is not possible"
或干脆 删去 枝 test
如果你不想这样做,或者合并失败。 如果合并失败,使用 git merge --abort
如脚注1所示,退避三舍;或 git reset --hard
做同样的事情)。 然后使用 git checkout master
和 git branch -D test
:
git merge --abort # if needed
git checkout master
git branch -D test
:使用单独的 "一刀切 "的唯一理由 test
上面的分支是为了避免有 master
移动,直到我们完成所有三个合并。 但由于分支名称是每个仓库的私有名称,所以从来没有任何的 要求 来做这件事:你可以只做合并,然后回滚(用 git reset --hard
)到以前的状态,如果你不喜欢这个结果。 只要不 git push
的提交,或将其提供给 git fetch
,直到得到你喜欢的结果。
1如果你愿意,你可以在不提交的情况下进行测试合并,然后使用 git merge --abort
假装你从未进行过测试。 但当你需要进行多个合并时,这就不行了,就像你问题中的情况。
八爪鱼合并了
不过还有另一种选择,Git称之为 章鱼合体. (注意:使用GitHub无法完成这些工作,可能在其他一些Web界面也无法完成。) 要做一个八爪鱼合并,把这三个功能都合并到一起。master
一次。
git checkout master
git merge feature1 feature2 feature3
如果有任何冲突,章鱼合并就会失败。
(我从未在实际工作中使用过章鱼合并。 它们并不能实现任何常规合并所不能实现的东西,而且人们觉得它们很混乱,所以我倾向于坚持使用常规合并)。)
以上是关于预测特征分支在主分支中合并时的合并冲突。的主要内容,如果未能解决你的问题,请参考以下文章