这个问题以前我在用SVN的时候就想过,但当时没想明白,也没遇到出bug的时候。
现在学习Git,同样有这个疑问存在,就提出来。
问题:
在合并分支的时候,如果没有冲突,Git自动合并的代码会不会有bug?
因为Git在合并时检测到的冲突都是编辑上的冲突,比如两次编辑是否在同一行上,两次编辑是否有相反的操作(一个增加一个删除相同的代码),显然,Git并不也无法关心代码本身的逻辑。
所以我认为合并之后应该去检查代码的正确性,相当于每次合并之后都需要验证两份分支所解决的问题在合并后是否又处于未解决的状态,以及是否产生了新了Bug,那这工作量就大了啊?
不知道各位在实际使用中会这么去检查吗?
如果多人编辑同一处代码,Git会报出合并冲突,需人为解决冲突,Git无法知道要怎么处理这些代码,这是无法避免的。实际多人协作的项目中,大家一般会分模块开发,尽量避免改动同一处文件;更改公共模块前,先更新。
如果合并之后未报冲突,那就是没有同一处代码被多少更改,没必要去检查合并的正解性。至于合并的代码引入了逻辑上的bug,那就需要review了。