本地分支衝突- git - W3HexSchool - 六角學院

文章推薦指數: 80 %
投票人數:10人

這裡也來分享如何解決衝突,也附上本小節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{ <<<<<<

>>>>>>dev } 來詳細解釋下: 從<<<>>就是dev的內容。

此時你要衡量要保留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 下一篇遠端協作分支衝突


請為這篇文章評分?