-
一、准备
-
1-1、dev分支里面的README
-
1-2、master分支里面的README
-
1-3、说明
-
二、冲突
-
2-1、合并结果
-
2-2、解决冲突一(有master分支操作权限)
-
2-3、解决冲突二(无master分支权限)
-
三、其它
从接触git到现在大概有三年之久了,也使用它工作一年之久,但直到写这篇文章之前,依旧对它的冲突很恐惧。
而现在只能算是说麻烦,不能算是说恐惧了,下面就把我目前对git冲突解决经验传授给大家。
一、准备
这里主要是讲怎么解决冲突,所以对于其它的尽量能少则少。
使用gitee创建一个项目,项目初始有一个README.MD
和两个分支dev
、master
。
1-1、dev分支里面的README
TEST- dev
1-2、master分支里面的README
TEST- master
1-3、说明
两个分支同一个文件里面的代码不一样,如果合并就会冲突。
现在我们就来合并分支 dev
> master
二、冲突
2-1、合并结果

此 Pull Request 无法自动合并,你应该手动合并它
注:实际我们多用的是gitlab,上面的英文翻译一下大意也是如此。
解决冲突的步骤:
-
把两个分支的代码都拉到你本地 -
手动去把代码整合一下 -
提交你的本地代码
2-2、解决冲突一(有master分支操作权限)
如果你有master分支的权限,你可以使用这个办法。
一般冲突后会提示你解决的办法,也是此办法。
2-2-1、更新远程分支
这一步一般不做,大部分这两个分支本地都有,但是可能出现没有的情况,所以运行一下也没什么关系。
git fetch
2-2-2、切换master分支、并拉取master分支代码
git checkout master
git pull origin master
2-2-3、拉取dev分支代码(当前分支是master)
git pull origin dev
2-2-4、解决冲突
这个时候你的本地代码会如下:

我们按照正确的代码格式,把本地代码整理成如下

2-2-5、提交代码
# 添加全部的文件,这里为了演示方便,你可以添加具体的文件
git add .
# 提交代码到本地仓库
git commit -m '解决冲突'
# 提交代码到线上仓库
git push origin master
提交到线上后,我们的那个分支合并,也会自动合并好了。
2-3、解决冲突二(无master分支权限)
-
实际开发中我们很可能没有这个分支的提交权限,我们只能拉取代码。
使用上面的方式再来重新制造一个冲突。

其实原理是一样的,之前我们是在master
分支上解决冲突,现在我们在dev
分支上去解决冲突。
2-3-1、更新远程分支
这一步一般不做,大部分这两个分支本地都有,但是可能出现没有的情况,所以运行一下也没什么关系。
git fetch
2-3-2、切换dev分支、并拉取dev分支代码
git checkout dev
git pull origin dev
2-3-3、拉取master分支代码(当前是dev分支)
git pull origin master
2-3-4、解决冲突
如上面一样,按照自己正确的代码进行调整
2-3-5、提交代码
# 添加全部的文件,这里为了演示方便,你可以添加具体的文件
git add .
# 提交代码到本地仓库
git commit -m '解决冲突'
# 提交代码到线上仓库
git push origin dev
这时候合并请求便会如下:

这个意思是现在已经没有冲突了,但是你没权限合并,找有权限的人给你合并。
三、其它
-
这里的dev分支代表你的开发分支,master分支标识要合并的分支 -
我这里使用的 gitee
提示都是中文的,如果你使用gitlab
提示是英文的,大意都是一样的 -
如果你没有合并权限的时候可能会出现 合并冲突
、没有需要合并的
、找有权限的人给你合并
,记得翻译一下英文,不然可能闹出笑话。 -
如果你明白了上面的含义,实际上遇到冲突了只可能是冲突文件比较复杂会难得处理,但不会手足无措。 -
我这里为了通用性都是使用的 git命令
,实际开发大家可以结合具体的软件(IDEA
、VSCODE
)可能会更简单。
原文始发于微信公众号(小道仙97):git冲突解决,使用git命令解决冲突【通用版】
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/41443.html