目錄
背景:git 合併**或分支衝突
解決方法
1.衝突情景製造
2.衝突解決
3. 總結
3.1 **提交正常流程
此種情況的原因是我們提交**前沒有更新**,導致本地倉庫版本不是最新的版本。
正常的操作流程在我們每次提交**前,要從遠處**倉庫更新**,保證本地倉庫**版本和遠端**倉庫版本儲存一致。
解決方法簡單來說就是修改衝突的**
提前準備好分支 branch-test1 ,檔案 test-code
使用者a用vi test-code新建乙個檔案,git status檢視檔案並沒有被新增,一般出現衝突,git status 都會有提示資訊,本地倉庫**版本太靠後。如下圖所示
提交檔案,並推送到遠端**倉庫中。
git add test-code命令來新增修改的或新新增的檔案到stage 區域中
git add .預設新增所有修改過的檔案
git status檢視下狀態,
git commit -m "add new file"-m 表示新增注釋資訊 "add new file"
如下圖 所示
將檔案推送到遠端**倉庫
git push origin branch-test1
此處origin 表示遠端倉庫,branch-test1 表示本地分支倉庫
如下圖
前提情況準備完成
這個時候使用者b 更新此檔案到本地倉庫,並修改部分內容提交
使用者a這個時候也修改的了test-code 檔案,但是並沒有先更新本地**倉庫,就提交,就會出現錯誤。如圖
這個時候使用者去合併**,也就會報衝突的錯誤資訊。
找到衝突的檔案,修改衝突**,這裡衝突檔案是test-code 直接修改它
開啟檔案可以看到<<<<<<<
保留你需要的內容,去掉<<<<<
>>>>>>>>標識的內容
然後重新命令
git add test-code
git commit -m "test-code"
git push origin branch-test1
如圖
一般來說我們在提交**前,可以用命令git diff來檢視本地和遠端**是否一樣,有不一樣然後在合併到本地
git fetch命令更新**是不會合併**到本地倉庫,用命令git diff 來檢視**的異同
git pull命令會將遠端倉庫的**合併到本地
此案例的流程如下
git fetch origin branch-test1
git difforigin/branch-test1branch-test1
當用完fetch 命令後就可以用此命令來檢視不一樣的地方,好確定是否將遠處**庫**合併到本地**庫中。
------- a/test-code
//如果是用 git diff
origin
branch-test1 就會有此中情況出現。
++++ b/test-code
@@ -1,3 +1,3 @@
//表示差異檔案的位置是在- 1,3 表示 a/test.code 檔案差異的位置在第一行之前 到 第三行
+1,3 表示 b/test.code 檔案中 差異位置在第一行之後到第三行
test the confix situation
hello world!
-input the futhure
+get the futhure
// 黑色字型是兩個檔案都有的內容, - 紅色表示是本地檔案相對於遠處**倉庫缺少的內容,
+綠色表示本地檔案相對於遠處**倉庫多出來的內容。
//表示是本地**倉庫的**檔案
git 衝突合併
當我們多人合作的時候,我們從遠端倉庫拉取更新出現衝突的時候,出現以下錯誤,這時候我們就需要手動修改衝突檔案了。git pull origin master from github.com branch master fetch head automatic merge failed fix conf...
Git 合併衝突
步驟 git status 找到衝突的檔案 將衝突去除 將衝突檔案重新加入臨時區 git add egis api v1 router.py 合併分支 git rebase continue 重新提交 git review 步驟 git checkout master git pull origin...
git合併衝突解決 本地合併衝突
feature分支合併到master起衝突,不要在gitlab上修改衝突,拉取在本地合併衝突 不在gitlab上修改合併的原因 在gitlab上合併會雙向合併兩次,會影響乙個不需要合併分支 命令順序 1.將feature分支的 全部上傳 2.切換分支到master git checkout mast...