目录

* 记录一次Git解决CONFLICT冲突
<https://www.cnblogs.com/JerryMouseLi/p/11369666.html#记录一次git解决conflict冲突>
* 1.CONFLICT产生的原因
<https://www.cnblogs.com/JerryMouseLi/p/11369666.html#conflict产生的原因>
* 2.Git正确的两种使用流程
<https://www.cnblogs.com/JerryMouseLi/p/11369666.html#git正确的两种使用流程>
* 2.1 暂存,拉取,恢复暂存,合并(如果有冲突),提交,推送
<https://www.cnblogs.com/JerryMouseLi/p/11369666.html#暂存拉取恢复暂存合并如果有冲突提交推送>
* 2.2 将本地分支先提交远程分支,再从需要更新的分支pull,此时会自动合并,不能合并的会产生Conflict,如下:
<https://www.cnblogs.com/JerryMouseLi/p/11369666.html#将本地分支先提交远程分支再从需要更新的分支pull此时会自动合并不能合并的会产生conflict如下>
* 2.2.1枚举远程仓库的文件数量
<https://www.cnblogs.com/JerryMouseLi/p/11369666.html#枚举远程仓库的文件数量>
* 2.2.2再次计算远程仓库文件数量?
<https://www.cnblogs.com/JerryMouseLi/p/11369666.html#再次计算远程仓库文件数量>
* 2.2.3压缩成79个文件
<https://www.cnblogs.com/JerryMouseLi/p/11369666.html#压缩成79个文件>
* 2.2.4总共87个文件,47个有差异
<https://www.cnblogs.com/JerryMouseLi/p/11369666.html#总共87个文件47个有差异>
* 2.2.5在本地解压缩87个文件
<https://www.cnblogs.com/JerryMouseLi/p/11369666.html#在本地解压缩87个文件>
* 2.2.6从远程仓库的master分支fetch拉取下来到本地仓库
<https://www.cnblogs.com/JerryMouseLi/p/11369666.html#从远程仓库的master分支fetch拉取下来到本地仓库>
* 2.2.7如下路径的文件表示合并成功
<https://www.cnblogs.com/JerryMouseLi/p/11369666.html#如下路径的文件表示合并成功>
* 2.2.8自动合并失败,需要修正冲突再提交结果。
<https://www.cnblogs.com/JerryMouseLi/p/11369666.html#自动合并失败需要修正冲突再提交结果>
* 2.2.9如下路径文件需要修正冲突
<https://www.cnblogs.com/JerryMouseLi/p/11369666.html#如下路径文件需要修正冲突>
* 3 冲突解决 <https://www.cnblogs.com/JerryMouseLi/p/11369666.html#冲突解决>
* 3.1 冲突文件的位置 <https://www.cnblogs.com/JerryMouseLi/p/11369666.html#冲突文件的位置>
* 3.2 area.vue文件的冲突解决
<https://www.cnblogs.com/JerryMouseLi/p/11369666.html#area.vue文件的冲突解决>
* 3.3 index.js文件的冲突解决
<https://www.cnblogs.com/JerryMouseLi/p/11369666.html#index.js文件的冲突解决>
* 4 提交推送 <https://www.cnblogs.com/JerryMouseLi/p/11369666.html#提交推送>
记录一次Git解决CONFLICT冲突

1.CONFLICT产生的原因




在这个情况下,分支1的版本C跟分支2的版本B的上一个版本是不一样的,所以这里需要将版本C与版本B进行自动合并,并解决冲突,然后再讲合并之后的版本C提交的master。

2.Git正确的两种使用流程

这里我为了保证数据不丢失,每次都会将每个分支的完成情况更新到远程仓库,再做pull合并,所以选择2.2方式

2.1 暂存,拉取,恢复暂存,合并(如果有冲突),提交,推送
git stash :暂存本地代码 git pull origin develop : 获取远程分支代码 git stash pop:恢复之前暂存的文件
2.2 将本地分支先提交远程分支,再从需要更新的分支pull,此时会自动合并,不能合并的会产生Conflict,如下:



这里试图对提示语句进行解释,但是搜索一个小时,发现网上解释很少,如果有大侠路过,烦请帮忙纠偏,谢过。

2.2.1枚举远程仓库的文件数量

remote: Enumerating objects: 187, done.

2.2.2再次计算远程仓库文件数量?

这里不明白Enumerating跟Counting的区别,网上有的Enumerating跟Counting数量是相等的,是以Counting为主。
remote: Counting objects: 100% (160/160), done.

2.2.3压缩成79个文件

remote: Compressing objects: 100% (79/79), done.

2.2.4总共87个文件,47个有差异

remote: Total 87 (delta 47), reused 0 (delta 0)

2.2.5在本地解压缩87个文件

Unpacking objects: 100% (87/87), done.

2.2.6从远程仓库的master分支fetch拉取下来到本地仓库

-> FETCH_HEAD,->
origin/master是对master的解释。将当前dev_lirj分支的e3514bc..0169ed4版本与master(origin/master)的最新版本进行合并。
From https://git.dev.tencent.com/JerryMouseLi/VueOMP * branch master ->
FETCH_HEAD e3514bc..0169ed4 master -> origin/master
2.2.7如下路径的文件表示合并成功
Auto-merging src/views/home/admin/components/MapCard.vue Auto-merging
src/views/equipview/box.vue Auto-merging src/views/equipmanage/area.vue
Auto-merging src/api/index.js
2.2.8自动合并失败,需要修正冲突再提交结果。
Automatic merge failed; fix conflicts and then commit the result.
2.2.9如下路径文件需要修正冲突
CONFLICT (content): Merge conflict in src/views/equipmanage/area.vue CONFLICT
(content): Merge conflict in src/api/index.js
3 冲突解决

3.1 冲突文件的位置

在这里我使用的VS code工具会将冲突文件的路径染成紫色,很人性化。


3.2 area.vue文件的冲突解决

此处有4个选项:

选项 含义
Accept Current Change 接受当前分支1的修改
Accept Incoming Change 接受pull导入主分支的修改
Accept Both Change 同时接受两个分支的修改
Compare Changes 对比修改,主要用于手动修改


Compare Changes示意图


这里选择Accept Current Change

3.3 index.js文件的冲突解决

同上选择Accept Incoming Change即可

4 提交推送