1. 程式人生 > >Git 學習筆記 - 12 - 解決分支衝突

Git 學習筆記 - 12 - 解決分支衝突

Git 學習筆記 - 12 - 解決分支衝突

注:本文參照的是廖雪峰老師的Git教程

概述:

按上一節說的,在合併分支的時候,如果發現master不是之前的分支了,已經有內容提交過了,而且提交的內容還是和自己這個私有分支修改的部分有重合,則會發生衝突。此時合併會報錯,需要先解決這個衝突,去除報錯,然後在合併。

步驟:

  1. 新建一個分支,名為:feature1,並跳轉到這個分支上

    git checkout -b featual
    
  2. 在feature1 分支上修改 readme.txt 的最後一行內容

    Creating a new branch is quick AND simple.


    在這裡插入圖片描述

  3. 然後在feature1分支上面提交,命令不在描述。

  4. 這時我們再切回master分支

    git checkout master
    
  5. 然後我們將這個分支上的 readme.txt 檔案進行修改,而不是按照上節的同步分支。

    將 readme.txt 最後一行修改為Createing a new branch is quick & simple.
    在這裡插入圖片描述

  6. 在master 分支上面將修改提交

  7. 提交完後我們再將修改後的feature1的分支內容合併到這個修改後的master分支上來,

    這時因為兩個分支都有修改,所以無法執行快速合併,只能試圖把各自的修改合併起來,但這種合併就可能會有衝突,如果兩者都修改了同一個地方時,就會有衝突。

  8. 在執行合併後發現有衝突,此時 Git 會提示我們檔案存在衝突,必須手動解決衝突後再提交。

    使用 git status 命令檢視當前的檔案狀態時,可以檢視到當前的衝突的檔案。

  9. 我們還可以進入有衝突的檔案內部檢視衝突

    進入檔案內部,會檢視到檔案衝突的資訊在哪,然後將其修改至想要的內容,解決衝突部分
    在這裡插入圖片描述

  10. 修改完成後,再次提交檔案

  11. 對於之前的提交,我們可以通過攜帶引數來檢視之前的 log 。

    這個引數我還沒懂…

  12. 刪除之前建立的分支feature1

解決衝突

總結:

當Git無法自動合併分支時,就必須首先解決衝突。解決衝突後,再提交,合併完成。

解決衝突就是把Git合併失敗的檔案手動編輯為我們希望的內容,再提交。

git log --graph命令可以看到分支合併圖。