解決Git合併分支發生的衝突

首先感嘆一下,Git在平常項目的管理中真是好用。java

進入正題,今天在合併分支的時候發生了衝突,第一次解決衝突,作個記錄。
簡單起見,假設:git

  • 衝突的文件是HelloWorld.javaeclipse

  • 個人分支是issueide

  • 要合併到分支master學習

衝突提示

Auto-merging HelloWorld.java
CONFLICT (content): Merge conflict in HelloWorld.java
Automatic merge failed; fix conflicts and then commit the result.

發生衝突的緣由

在你要合併分支的時候,另外一分支上同一份代碼已經被修改過。網站

合併分支的步驟

  1. 更新本分支,固然,若是你確認你本機上的代碼是最新的,能夠略過這步。ui

    $ git pull
  2. 切換到master分支。spa

    $ git checkout master
  3. 提出合併。code

    $ git merge master

    在這一步,git將發出衝突提示:blog

    Auto-merging HelloWorld.java
    CONFLICT (content): Merge conflict in HelloWorld.java
    Automatic merge failed; fix conflicts and then commit the result.

解決辦法

  1. 查看衝突。

    $ git status

    這一步會列出具體的衝突文件有哪些。

  2. 根據提示,到相應的文件中查看,會發現文件中有如下錯誤提示:clipboard.png
    其中,=======上面是當前分支(也就是master)的代碼,=======下面是要合併進來的分支的代碼,二者發生了衝突。此時,分析兩段的代碼是實現相同功能而寫的重複的代碼仍是各自實現的不一樣的功能的代碼。若是是重複代碼:兩個二選一刪除一個,而後再把這些衝突標示符刪除便可;若是不是重複代碼,兩個都須要保留,只把衝突符號刪除便可。

  3. 從新添加

    $ git add HelloWorld.java

    多說一句,若是在eclipse中修改衝突,能夠直接右鍵文件->Team->Add to Index。

  4. 最後,提交代碼。

    $ git commit -m "合併issue分支"
    $ git push origin master
  5. 切換回issue分支

    $ git checkout -

    若是是在eclipse中, 右鍵工程->Team->Switch To->issue。在eclipse中用git也仍是挺方便的。

擴展

最後,解決問題的過程無心間發現這個網站:猴子都能懂的git入門,裏面的內容很豐富也很好理解,有興趣的同窗能夠去學習一下。

相關文章
相關標籤/搜索