git多人协作

一、git中不同人修改了同文件的同一区域如何处理?

①首先,2个用户先使用git pull命令把仓库更新下:

git pull

②张同学修改了代码,在代码最后新增了:张同学测试成功!

git多人协作_第1张图片

并提交到本地仓库:

$ git commit -am"Add 张同学测试成功!"

③而且,张同学一修改完,就直接push到远端了:

git push

远端代码情况:

git多人协作_第2张图片

④与此同时,江同学也修改了代码,在代码相同位置处新增了:江同学测试成功!

并提交到本地仓库:

$ git commit -am"Add 江同学测试成功!"

⑤江同学也打算推送到远程仓库,此时看下会发生些什么:

git push

git多人协作_第3张图片

发现推送报错。

那么该如何处理呢?

①你push的时候报错,说明远端变了,因此,需要先进行一下pull操作

git pull

git多人协作_第4张图片

但此时pull也失败了,提示git自动merge失败,有文件冲突了。

②如何解决冲突呢?这里用到的是命令行方式。在文件里找到出现冲突的位置:

git多人协作_第5张图片

这里需要人为手动解决冲突。

将git冲突时产生的提示符删除,修改代码中需要保留的信息,保存退出。本次修改为:

git多人协作_第6张图片

 ③现在,我们看下当前git的状态,这里还需要进行一次提交才行:

$ git status
$ git commit -am"Resolved conflict by 保留为:江同学测试成功"

④本地的冲突解决掉之后,我们要及时的把这个commit push到远端去:

git push

git多人协作_第7张图片

 只有push上去了,其他同学才能拿到我们最新的代码。

⑤此时,我们再到github上看下现象:

git多人协作_第8张图片

已经修改为:江同学的代码啦!

保留了需要的代码,冲突解决!

二、git中不同人修改了同文件的不同区域如何处理?

这种情况就比较简单了,git会自动合并。

①例如,A同学在代码前面新增了:

git多人协作_第9张图片

并提交到远程仓库。 

②B同学在代码末尾新增了:

git多人协作_第10张图片

③这时,B一般pull前先git push拉一下远端最新代码,会与本地仓库的自动merge。(不需要再次commit提交了)。

git多人协作_第11张图片

 ④B的本地仓库代码情况为:

git多人协作_第12张图片

 B再git push提交到远端:

git多人协作_第13张图片

 总结:注意点就是每次push代码前先pull一下,保证和远程的最新镜像保持一致。如果不放心的话,可以本地备份一下自己修改的代码哦!

你可能感兴趣的:(git,git)