一、前言
相信大家在公司都使用过SVN,使用SVN解决冲突跟Git差不多,这里我们简单介绍一下使用Git是如何解决冲突的,有兴趣的可以参考这篇文章《SVN教程之如何在Eclipse下使用SVN解决代码冲突》看看SVN下是如何解决冲突的。
二、步骤
①工程右键 ->Team ->Synchronize Workspace
②从远程pull至本地,就会出现如下内容:
大家应该注意到,有一个文件是有冲突的。那我们要怎么解决这个问题呢?
③既然有冲突,那么就开始合并冲突。合并冲突前,先要把代码提交到git的本地仓库。现在在同步视图这里右键项目然后选择Commit,如下图:
然后会跳到代码提交视图,如下图,
点击Commit按钮,注意:是Commmit按钮,而不是Commit and Push。
④把代码Commit到本地仓库之后,我们就可以把远程的代码pull下来并且合并,如下图:
EGit把远程代码pull下来的同时会把代码同时merge了,点击一下有冲突的文件,会在右边的对比视图看到如下面视图:
现在我们要做的就是把已经合并了的文件修正过来
⑤把合并的代码都修正过来之后,在在项目对比视图右键项目然后选择Add to Index,这个步骤非常重要,如下图:
然后项目对比视图会变成如下:
注意:这个时候,冲突的文件前冲突的符号下就多了个星星
⑥到现在合并就已经完成,可以把代码提交到远程仓库了。右键项目选择Commit然后在下面视图中点击Commit and Push
注意:这里是Commit and Push,提交到远程仓库。
再去远程仓库查看一下代码是否提交
红线部分是本地刚提交上去的代码,提交成功。
⑦还有一种方式,就是先将自己本地跟服务器上有冲突的文件先备份一下,取一个别名比如EmpMapper.java.bak,然后再将EmpMapper.java代码从服务器上pull下来,这时候再将EmpMapper.java.bak中修改过的地方添加到新pull下来的文件中就可以了。这种也不失为一个很好的操作方式。
原文地址:http://www.marsitman.com/eclipse/eclipse-git-deal-conflict.html