最近在做项目时,本地comit完代码后,从远程库拉取代码后,发现出现很多冲突,有点慌不知如何快速解决,一个个改效率太低,小乌龟这个之前看过一点点,但没有在实际项目中用过,这次用小乌龟快速解决了这个问题.

场景:
在公司做项目时,多个同事可能会同时修改了同一文件的同一行的代码,其中一个已提交了代码,但你又在本地修改了,拉取代码时势必会造成冲突,如果少量冲突,手动改一下还好,但是出现大量冲突,势必要借助一些工具,提高工作效率.

案例:

首先,我直接在远程代码仓库直接添加测试代码,模拟同事已commit了代码.

git 小乌龟配置push remote 根地址_github


然后在本地,同一文件的同一位置,添加代码,这时提交代码,拉取代码后,会发现:

git 小乌龟配置push remote 根地址_git_02


git 小乌龟配置push remote 根地址_远程库_03


打开当前项目所在位置:

鼠标右击---->TortoiseGit -->Reslove

git 小乌龟配置push remote 根地址_解决冲突_04


然后会弹出,显示冲突文件:

git 小乌龟配置push remote 根地址_github_05


双击冲突文件:打开解决冲突的窗口

git 小乌龟配置push remote 根地址_取代码_06


左边文件为:远程仓库的文件,右边为本地文件(也就是你当前修改的文件)

下边的文件是你合并操作后的文件,所以你要对比左右文件的差异:

比较常见的情况是:

1.你对已有的代码进行了改动,也会造成冲突(应该以你修改的为准)

2.别的同事推送的代码.和你添加的代码的位置冲突了(都要保留)

下面就解决冲突:

git 小乌龟配置push remote 根地址_git_07


在合并处,鼠标右击:

git 小乌龟配置push remote 根地址_解决冲突_08


1.Use text block from left:使用远程库的代码

2.Use text block from right:使用本地的代码

3.Use text block from right before left:

远程库和本地文件的代码都保留,且本地库的代码放在上面,远程库的代码放在下面

Use text block from left before right:

远程库和本地文件的代码都保留,且本地库的代码放在下面,远程库的代码放在上面合并后的代码:

git 小乌龟配置push remote 根地址_远程库_09

最后,点击Mark as resolved 和Save按钮即可(如果冲突比较多,就点击Next difference一个个排查解决冲突即可)

git 小乌龟配置push remote 根地址_github_10


还有虽然解决了,冲突,但是git命令行还是处于master/merging状态,这又该如何解决?

几个命令就解决了

git 小乌龟配置push remote 根地址_解决冲突_11


最后,再将合并后的代码push到远程仓库:

还是习惯性先拉取一下代码

git 小乌龟配置push remote 根地址_远程库_12