解決Visual Studio 中的合併衝突 - Microsoft Docs
文章推薦指數: 80 %
下圖顯示Git 中變更如何衝突的基本範例。
在此範例中,main 分支和Bugfix 分支會更新相同的源程式碼。
Diagram that shows a merge conflict.
跳到主要內容
已不再支援此瀏覽器。
請升級至MicrosoftEdge,以利用最新功能、安全性更新和技術支援。
下載MicrosoftEdge
其他資訊
目錄
結束焦點模式
閱讀英文
儲存
目錄
閱讀英文
儲存
Twitter
LinkedIn
Facebook
電子郵件
目錄
解決VisualStudio中的合併衝突
發行項
08/08/2022
6位參與者
本文內容
適用于:VisualStudioVisualStudioforMacVisualStudioCode
當您將某個分支合併到另一個分支時,一個分支中的認可檔案變更可能會與另一個分支中的變更衝突。
Git會嘗試使用存放庫中的歷程記錄來解決這些變更,以判斷合併的檔案看起來應該是什麼。
當它不清楚如何合併變更時,Git會停止合併,並告訴您哪些檔案發生衝突。
瞭解合併衝突
下圖顯示Git中變更如何衝突的基本範例。
在此範例中,main分支和Bugfix分支會更新相同的源程式碼。
如果您嘗試將Bugfix分支合併至main,Git就無法判斷合併版本中使用的變更。
您可能想要保留主要分支、Bugfix分支或兩者的某些組合中的變更。
使用主要分支中的合併認可來解決此衝突,以協調兩個分支之間的衝突變更。
最常見的合併衝突案例會在您將更新從遠端分支提取到本機分支(例如,從原始/Bugfix提取到本機Bugfix分支)。
您可以用相同的方式解決這些衝突:在本機分支上建立認可以協調變更,然後完成合併。
防止合併衝突
只要檔案內容不會在認可之間大幅變更,Git就適合在大部分情況下自動合併檔案變更。
如果您的分支遠在主要分支後方,請考慮在開啟提取要求之前重新開始分支。
重設基底的分支將會合並到您的主要分支,而不會發生衝突。
解決合併衝突
如果您要與相同分支中的其他人共同作業,當您推送變更時,可能會發生合併衝突。
VisualStudio會偵測您正在使用的本機分支是否在其遠端追蹤分支後方,然後為您提供選擇的選項。
注意
如果您的遠端存放庫支援強制推送,您可以使用Git>設定加以啟用。
在此範例中,選取[提取],然後選取[推送]以包含引進至遠端存放庫的變更。
如果您在提取變更或嘗試合併兩個分支時發生任何合併衝突,VisualStudio會在[Git變更]視窗、[Git存放庫]視窗中,以及任何發生衝突的檔案中通知您。
[Git變更]視窗會顯示[未合併的變更]底下有衝突的檔案清單。
若要開始解決衝突,請按兩下檔案。
或者,如果您有在編輯器中開啟衝突的檔案,您可以選取[開啟合併編輯器]。
在[合併編輯器]中,使用下列任一方法來開始解決衝突(,如編號的螢幕擷取畫面所示):
逐行流覽您的衝突,然後選取核取方塊來選擇保留右邊或左側。
保留或忽略所有衝突的變更。
在[結果]視窗中手動編輯程式碼。
提示
如果您不喜歡合併編輯器中的預設版面配置,您可以使用齒輪下拉式功能表來變更它。
例如,下列螢幕擷取畫面顯示垂直檢視的外觀:
當您完成解決合併衝突時,請選取[接受合併]。
針對所有衝突的檔案重複此程式。
使用[Git變更]視窗來建立合併認可並解決衝突。
注意
如果您需要保留檔案的所有變更,您可以在[未合併的變更]區段中按一下滑鼠右鍵,然後選取[保留目前(本機)而不需開啟合併編輯器。
後續步驟
若要繼續您的旅程,並深入瞭解如何解決衝突,請參閱合併命令的Git網頁。
另請參閱
VisualStudio中的Git體驗
VisualStudio和GitHub:一起更好
本文內容
延伸文章資訊
- 1你一定會遇到衝突(git conflict) - Medium
android studio內建解決衝突的工具,VCS ->Git->Resolve Conflict. 從下圖會列出衝突的檔案有哪些,可以點擊它看進去看衝突的內容.
- 2本地分支衝突- git - W3HexSchool - 六角學院
- 3git遇到衝突了怎麼辦?別緊張,解衝後就好了。 - iT 邦幫忙
git commit -am 'a description only existing in meat branch'; git merge vegetable; git status. As ...
- 46.解決合併的衝突【教學1 使用分支】 | 連猴子都能懂的Git入門 ...
git merge issue3 Auto-merging myfile.txt CONFLICT (content): Merge conflict in myfile.txt Automat...
- 5合併發生衝突了,怎麼辦? - 為你自己學Git | 高見龍
git merge dog Auto-merging index.html CONFLICT (content): Merge conflict in index.html ... 這問題看來是...