記錄一次Git解決CONFLICT沖突


記錄一次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 提交推送


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM