推送代码冲突解决
大约 3 分钟
推送代码冲突解决
有如下场景:
小张和啊亮,两个人本地都获取了V1版本的代码,然后,然后将V3 push到了远程,git server发现V3就是基于V1版本修改的,于是git server将版本更新到V3
接着小张将本地基于V1的代码更改为V2后,也push到远程,此时,于是会报错,产生冲突(如果不报错,啊亮提交的V3就全没了)

一、无需手动解决的冲突


这时啊亮也和小张一样,获取同一份远程的代码,然后进行修改

啊亮修改完成后,添加到暂存区以及本地仓库

git log查看提交日志,发现本地分支已经领先于远程分支(这是本地的,因为修改了所以会领先原来的)

然后啊亮成功推送自己的代码


这时就发生了冲突,于是

- 可以看到,由于啊亮和小张
然后直接push即可

这时小张git pull即可同步刚才啊亮做的修改

- 通过git log可以查看提交日志,可以看见小张先做的修改,啊亮再做修改
二、需要手动解决的冲突
第一种情况中,由于小张和啊亮修改的是不同地方的代码,所以git工具可以帮我们自动合并冲突;然而
这时Windows和ubuntu两个客户端同时进行git pull,同时同步远程最新的代码
小张在Windows端修改了README.md

然后add、commit,准备push

啊亮在ubuntu端修改了README.md,此时与小张修改的是同一行

啊亮很快就把自己的修改push到远程仓库

然后小张这个时候才push,于是发生了冲突

然后git pull
,同步本地和远程的代码,

查看冲突的文件

做如下修改

最后push到远程
