github,从master分出来两个分支a和b,修改了同一段代码,合并会冲突吗?

从master分出来两个分支a和b,然后在a和b上修改了同一段代码,然后a先合到了master,然后b再合到master,应该是会报冲突的吧?

那如果另一种情况,从master分出来一个分支a,然后在分支a上做了些修改,然后再从分支a上分出一个分支b,然后a和b又修改了同一段代码,然后a合到master,b再合,会报冲突吗?

阅读 7.6k
4 个回答

自己亲自试验了一下,针对问题中的第一个情况,答案是会冲突的。

针对问题中的第二个情况,从master分出来一个分支a,然后在分支a上做了些修改,然后再从分支a上分出一个分支b,然后a和b又修改了别的同一段代码,然后a合到master,b再合,会报冲突吗?

答案是:先从master分出来一个分支a,在a分出b之前,做了些修改(p1部分的修改),分出b之后,a分支又做了修改(p2部分的修改)。然后在b分支上,分别对p1部分和p2部分做出和a分支不同的修改。然后切到master分支上,先合并a,(然后push到远程master,这一步可做可不做),到此为止一切正常,然后在master上合并b,报冲突了,注意:p1部分没有报冲突,b分支的p1部分的代码成功覆盖master,报冲突的是p2部分,a分支的p2部分的修改和b分支的p2部分的修改冲突了,要解决冲突。

为什么p1部分没有报冲突呢,是因为p1部分的a的修改,是在a分出b之前做的,然后b再做修改就可以直接覆盖;而p2部分冲突,是因为p2部分的修改是a分出b后,a和b同时做的,所以冲突了。

肯定会冲突的。要手动解决冲突

你好!
每次提交代码前先git pull拉取代码,如果有冲突一定要协商解决,解决了再提交,这样会避免很多不必要的麻烦。
希望我的回答对你有所帮助,谢谢!

泻药。
这里一般的做法可以是先将b合并到a中,解决冲突之后再合并到master,或是像lz的情况,b先在本地合并了远端master解决冲突之后再合并。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进