本地分支衝突- git - W3HexSchool - 六角學院
文章推薦指數: 80 %
這裡也來分享如何解決衝突,也附上本小節Git 範例程式碼. ... git merge dev Auto-merging all.css CONFLICT (content): Merge conflict in all.css ...
W3Hexschool
學習單元(current)
共筆部落格(current)
X
Git環境教學
Git&GitHub教學手冊
Git是什麼?版本控制是什麼?
在Windows上安裝Git流程
在Mac上安裝Git流程
終端機操作分享
config設定姓名、Email
Git基礎操作
gitinit-建立數據庫
gitadd、gitcommit-提交版本
git檔案追蹤機制
Sourcetree軟體操作教學
GitHubPages-建立靜態網站
章節回顧
Git數據庫
本地與遠端數據庫簡介
gitremoteadd-添加遠端數據庫
Bitbucket服務介紹
gitclone-克隆遠端數據庫
gitpush-推送
gitpull-下載同步更新
章節回顧
Git分支(branch)
gitcheckout移動HEAD指標
分支建立(gitbranch)
分支合併(gitmerge)
分支合併(快轉模式)
分支合併(非快轉模式)
分支情境演練
分支題目練習
Git衝突
本地分支衝突
遠端協作分支衝突
Git還原
gitcheckout、gitclean-還原檔案
gitreset-還原版本
gitreset-影片教學
gitreflog-還原大招
Git遠端多人協作
GitHub發PR(pullrequest)流程
GitHubFlow介紹
GitHubFlow線上實際演練
W3HexSchool
Git衝突
本地分支衝突
本地分支衝突
洧杰
已發佈
2019-11-17
並非每次分支合併都會一帆風順,如果剛好合併內容同時修改同一行CODE時,就會導致衝突。
這裡也來分享如何解決衝突,也附上本小節Git範例程式碼。
情境解說
dev的c4分支,修改了all.css,加入了h1樣式進去
master的c5分支,也同樣改了all.cs,並加入了h1樣式
更重要的是他們改的行數是一樣的,所以必然會產生衝突。
接下來我們就checkout到master後,來合併到dev。
gitmergedev此時,終端機會回饋衝突訊息
❯gitmergedev
Auto-mergingall.css
CONFLICT(content):Mergeconflictinall.css
Automaticmergefailed;fixconflictsandthencommittheresult.這裡的意思是,all.css確實發生衝突了,此時該檔案會變成Unmerged狀態,所以目前合併過程尚未,Git請我們將衝突檔案解決掉後,才能順利合併。
所以這裡該怎麼做呢?我們先用gitstatus觀看訊息。
你會發現all.css目前變成Unmergedpaths狀態。
所以接下來,我們就進入到all.css看看發生什麼事情了。
body{
color:red;
}
h1{
<<<<<<
此時你要衡量要保留master還是dev,假使你要保留讓文字變成藍色,那就讓他變成以下程式碼。
body{ color:red; } h1{ color:blue } 當儲存後,你就可以輸入gitaddall.css將它重新加入索引後,你可以使用gitstatus觀察狀態。
此時的回饋就會說,您目前沒有任何衝突了,可以使用gitcommit來提交。
於是我們就輸入該指令後。
就會彈跳編輯器顯示預設訊息。
Mergebranch'dev' #Conflicts: #all.css # #Itlookslikeyoumaybecommittingamerge. #Ifthisisnotcorrect,pleaseremovethefile #.git/MERGE_HEAD #andtryagain. #Pleaseenterthecommitmessageforyourchanges.Linesstarting #with'#'willbeignored,andanemptymessageabortsthecommit. # #Onbranchmaster #Allconflictsfixedbutyouarestillmerging. # #Changestobecommitted: #modified:index.html #Git預設訊息裡,你也可以自己編輯相關內容,若是覺得沒問題就儲存關閉,本次合併就完成了! 也附上Sourcetree提供參考。
流程回顧 checkout到master後,輸入gitmergedev 發生衝突,all.css變成Unmerged狀態 修改all.css後,重新加入到索引gitaddall.css 透過gitstatus指令觀察,是否可以重新提交 輸入gitcommit提交,並撰寫commit訊息,完成本次合併 小結 通常在衝突上,不會只有單一檔案或某一行程式碼。
可能會出現一個檔案會有多處衝突地方,或者是兩個檔案有衝突,此時就依照上面步驟調整好後,再依序加入索引就沒問題了。
影片教學 這裡也附上我錄製的影片,幫助你加深觀念。
關於筆者 暱稱:洧杰 介紹:六角學院校長,熱愛分享與交流的前端工程師,目前專注於兼容桌面/移動網頁前端開發,期間已協助數百位平面設計師,網頁設計師導入標準網頁設計。
筆者Facebook 下一篇遠端協作分支衝突
延伸文章資訊
- 1你一定會遇到衝突(git conflict) - Medium
在進行合併的時候,如果有不同的開發人員改到相同的程式碼,合併就會失敗,必須要修改衝突的程式碼之後,才能進行合併,本篇會介紹解決衝突的流程。
- 2git pull时冲突的几种解决方式- 雪山上的蒲公英 - 博客园
1. 忽略本地修改,强制拉取远程到本地 · 2. 未commit先pull,视本地修改量选择revert或stash · 3. 已commit未push,视本地修改量选择reset或直接merge.
- 36.解決合併的衝突【教學1 使用分支】 | 連猴子都能懂的Git入門 ...
$ git merge issue3 Auto-merging myfile.txt CONFLICT (content): Merge conflict in myfile.txt Autom...
- 4合併發生衝突了,怎麼辦? - 為你自己學Git | 高見龍
git merge dog Auto-merging index.html CONFLICT (content): Merge conflict in index.html ... 這問題看來是...
- 5git遇到衝突了怎麼辦?別緊張,解衝後就好了。 - iT 邦幫忙
iT 邦幫忙是IT 領域的技術問答與分享社群,透過IT 人互相幫忙,一起解決每天面臨的靠北 ... When we use git merge to merge two branches, gi...