android studio 中如何合並沖突(轉)


合並分支,解決沖突

執行Git merge ,如果有沖突,就會出現如下格式:

<<<<<<< HEAD
這個位置的內容就是當前所在分支的內容 ======= 這個位置的內容就是合並進來的分支的內容 >>>>>>> branchName

用下面的設置來改進沖突標記使其也顯示(分支)共同祖先(感謝羅賓·斯托克和休·吉登斯): 
git config --global merge.conflictstyle diff3

設置顯示共同祖先之前: 
這里寫圖片描述

設置了顯示共同祖先之后: 
這里寫圖片描述 
||||||| merged common ancestors下面的內容就是雙方改動前的內容

雙方改動少的情況下,這種方式還是能一目了然的看到改動情況的,但是一旦沖突復雜了,就需要動用工具了,Android Studio就自帶了解決沖突的工具,以下是操作步驟

選中項目->右鍵->Git->Resolve Conflicts

這里寫圖片描述

會出現一個彈窗,顯示了沖突的文件,選擇某個文件后,點擊Merge

這里寫圖片描述

會出現三個代碼框

這里寫圖片描述

a、左邊的Local Changes代表”當前“分支上的修改;
b、右邊的Changes from Server代表“合並進來”的分支上的修改;
c、中間的Result代表經過處理后的最終內容;

左上角有一排按鈕,分別介紹一下作用

這里寫圖片描述

  • 上下箭頭:跳轉到上(下)一個不同;
  • 這里寫圖片描述 這三個從左往右依次代表:比較左邊和中間的內容,比較中間和右邊的內容,比較左邊和右邊內容;
  • 這里寫圖片描述這三個從左往右依次代表:接受兩邊沒有沖突的改變,接受左邊沒有沖突的改變,接受右邊沒有沖突的改變,什么叫沒有沖突的改變待會兒會解釋;
  • 現在回頭看內容區域,會看到四種顏色 
    • 紅色區域:代表當前分支和合並分支都編輯過的內容,屬於沖突;
    • 藍色區域:代表被單方面編輯過的內容,屬於改變;
    • 灰色區域:代表被刪除的內容,屬於改變;
    • 綠色區域:代表新增的內容,屬於改變;
  • 通過之前所述我們可以知道,真正需要解決的沖突只有紅色區域,其他高亮區域只是為了讓我們再次確認改變的內容是否合理,如果對自己的代碼有信心,那就不用管那些區域了,c步驟中的三個按鈕就派上用場了,你可以按照自己的需求接受改變的代碼,通常可以直接接受兩邊沒有沖突的改變:

這里寫圖片描述

    • 接受后就變成上圖了,現在我們需要解決沖突了,如果不記得自己的修改是什么,就可以關閉該工具,通過查找歷史提交,比對歷史代碼來確認正確的代碼;有的時候由於代碼格式化的原因,你並沒有改變代碼的內容,但是格式化增加了一些空格,那么也會產生沖突,


免責聲明!

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



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