解决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入门,里面的内容很丰富也很好理解,有兴趣的同窗能够去学习一下。

相关文章
相关标签/搜索