git协同开发距离
前提:仓库代码文件:只有一个test.html
<html>
</html>
下面是基于修改到同一个文件的时候的问题:
第一种情况、 a和b两人
两个人都同时git pull 了代码,然后同时开始修改.
a写好代码后(添加了代码2222),先push提交。
所以仓库的代码就变成了以下
<html>
222222
</html>
b写好代码后(添加了代码3333),由于b的开发速度较慢,而且和a没有沟通好,共同修改到了这同一个页面晚提交了。b此时的代码:
<html>
333333
</html>
然后b开始commit、push提交了 ,然后就爆出错误,有冲突。因为b推送时,远端的仓库数据已经变了(多了22222),不是他一开始拉取时候的代码了,所以需要更改冲突。
解决办法:
这个时候可以两个人沟通下使用谁的代码,然后看看谁覆盖谁的。然后解决冲突后提交就行了!
我这边是采用b的代码,所以最终剩下的是:
<html>
333333
</html>
二、继续上面的操作
这个时候,过去一天了,于是a和b重新拉去了代码,开始开发。
a今天修改代码如下:
<html>
333333
44444
55555
</html>
然后提交、push。
然后b又是开发的比较慢,看b修改的代码:
<html>
333333
66666666
77777777
</html>
然后这个时候,b想提交推送了,不过这次b聪明了,先git pull更新了一下本地仓库(在pull前已经代码贮存好)。然后发现线上的已经更新了。于是b看了下,a的代码跟它无关,不过因为是同个页面的代码,所以git还是会提示哪些代码段有不一致,然后就需要b亲自去改改代码。然后觉得没问题就直接将刚拉取的a更改的代码跟b修改的代码的页面合并了。
然后再推送到远端。
最终代码如下:
<html>
333333
4444444
5555555
66666666
77777777
</html>
下面是a和b各自建立自己的文件(开发自己的模块)的时候的问题:
第三种情况、
a创建了1.html文件,然后commit、push后。
b同时间也创建了2.html,不过b动作慢,不过这个时候没事。
b直接先拉取,把最新的拉取下来,然后在把自己创建的模块直接提交commit、push就行了。