Git冲突问题
还是通过这张手绘来解释。
我们知道的,git就是一个个版本,你每更新一次代码,他的版本号就变了。
现在线上仓库的项目版本号是1.0,然后 a 和 b ,都pull了这个项目,并且是对同一块代码来进行操作,在 a 还在津津有味的写代码的时候,b 已经改完了,并且把改完的项目push了上去。然后线上的项目版本的版本号从 1.0 => 2.0 ,这个时候 a 也操作完了,准备提交了,发现炸了,交不了,为什么?因为你pull下来的版本是 1.0 ,而这个时候的版本已经是2.0了,这就是冲突。所以无论什么时候,改完代码之后,都要再pull一下,如果发生了冲突,Git会直接提醒你,你想要提交的这个版本,和线上pull下来的版本哪里不一样。这时候就需要 a 和 b沟通一下,应该怎么改,然后由 a 改完再次提交。如果 a 不管冲突的信息,直接push的话,那么这一块代码的内容会有报错的信息在里面,根本没法跑。
注意:
如果 a 和 b 操作的是不一样的内容,比如说a操作的是用户模块,b操作的是商品模块,这样,即使 a 再次pull的时候,版本号也不一样,也不会提醒你冲突,因为这时候不冲突,git会自动帮你整合。
在现实开发中,冲突发生的概率比较小,切记在push前,要再次pull一下,看自己当前的版本号是否满足push的要求(当然如果只有你自己操作这一块代码,即使版本号低于线上版本号,也没事)。