Eclipse中Egit冲突解决
Eclipse中Egit冲突解决
Git
作为进来最流行的分布式版本控制软件来说应用的十分广泛。EGit就是一款Eclipse上的Git插件。在使用Egit提交项目时,有时会产生冲突,需要对代码进行merge。这里对内容冲突的解决进行介绍。
内容冲突是指两个用户修改了同一个文件的同一块区域,git会报告内容冲突。
1. 产生内容冲突
我们原始文件内容如下所示:

有两个项目组同时对其进行修改:
1)
GordonCoder将第三行中“System.out.println();”修改为“System.out.println(“Hello,
GordonCoder”);”
2)Jiangpeizhao将第三行中“System.out.println();”修改为“System.out.println(“Hello,
Jiangpeizhao”);”,
GordonCoder修改完文件后commit 并push,之后Jiangpeizhao进行修改并准备提交。
2. 提交修改
在项目上右击选择Team-Commit,在弹出对话框中填写“Commit
message”并勾选需要提交的文件,点击“Commit and
Push”。如果没有发生冲突,则提交正常;如果有冲突,则会填出下面的对话框“master:master[rejected –
non-fast-foward]”:

此时在项目上右击选择Team-Synchronize Workspace

此时Eclipse界面如下,会跳到Team视图:

项目文件夹右侧有“↑1”和“↓1”,说明有一个未push的修改和一个未pull的修改。打开下面的History窗口,可以看到最上面的两条修改,一个由Jiangpeizhao提交,一个由Gordon提交。
此时产生冲突。
3. 解决冲突
首先,将修改从远程pull到本地,点击下图的小按钮:

点击后如下图所示:

其中”<<<<<<<
HEAD”、”=======”、“>>>>>>>
branch 'master' of https://git.oschina.net/Jpz/SpringDemo2.git”直接的就是双方的修改。
右击项目,选择”merge tool”:

如果”merge tool”是灰色的,如下图所示:

那么可能是由于没有在本地进行Commit或者没有进行pull。
点击”merge tool”后弹出:

注意现在文件图标下的红箭头,这是冲突的标志。如果没有弹出这个对话框,那是因为Git设置的问题。选择Window-preference:

在弹出对话框中找到Team-Git,将Merge tool context设置为第一个选项”Prompt when
starting tool”,点击OK:

在下面填出的对话框中

选择第二个选项,之后如下所示:

手动来解决冲突,在本例中将这一行改为“System.out.println(“Hello,
everyone”);”修改完后保持(ctrl+s,呵呵)。
右击项目,选择”Add to git index”:

注意此时图标的变化。

4. 合并merge
右击项目,选择”Commit…”提交至本地,此时的提交便是合并:

弹出窗口如下:

点击“Commit”。如果是只有一个冲突,此时也可以直接点击“Commit and Push”
点击“Commit”后如下所示,注意箭头数:

此时解决一个冲突,如果冲突多,需要继续处理,就继续按以上步骤来。解决完后,点击”Push”:

最后如下所示:

点OK即可。
5. 查看history:
在java界视图,右击项目选择“team-show in history”,如下所示:
可以查看history:


关于Egit的其他操作课参考:
http://www.cnblogs.com/sinojelly/archive/2011/08/07/2130172.html
http://wiki.eclipse.org/EGit/User_Guide
Eclipse中Egit冲突解决的更多相关文章
- eclipse中egit插件使用
这篇文章当时制作有点粗糙,建议阅读升级版:eclipse中egit插件使用--升级版 使用git作为项目的代码管理工具现在是越来越火,网上有各种各样的文章.博客.讨论,其中以命令行居多.使用eclip ...
- 【转】eclipse中egit插件使用
原文网址:http://my.oschina.net/songxinqiang/blog/192567 eclipse和git这个两个工具的使用人数都是相当多的,在eclipse里面也有egit插件来 ...
- 解决eclipse中egit中的cannot open git-upload-pack问题
一.背景 今天在使用eclipse的egit插件进行检出远程代码到本地时,出现了cannot open git-upload-pack错误,后经过努力解决该问题,记录下方便回顾和交流! 二.出现原因 ...
- eclipse中egit插件使用(转)
1.eclipse和egit版本 eclipse使用的是kepler的SR1版,egit就是自带的那个版本,要详细的话,我就也只能把文件名贴出来了:eclipse-jee-kepler-SR1-win ...
- .Net中DLL冲突解决(真假美猴王)
<西游记>中真假美猴王让人着实难以区分,但是我们熟知了其中的细节也不难把他们剥去表象分别出来.对问题不太关心的可以直接调到文中关于.Net文件版本的介绍 问题 最近在编译AKKA.net ...
- SVN下载项目导入到eclipse中出现错误解决办法:
首先要确定settings.xml配置路径正确 (下面是我自己的路径,设置自己的路径) 用客户端暴力解决方法: 1)把本地中工作空间中内容删除重新下载 2)导入到eclipse中 会出现一些问题 右键 ...
- 团队开发中Git冲突解决
正常来说我们团队协作开发过程中,冲突是常有的事,下面介绍下本人在开发中的解决办法. 冲突的主要原因就是由于我们开发人员在分支的同一位置写入了不一样的代码,然后合并到主干上导致我们冲突. 方法: 当冲突 ...
- git在idea中的冲突解决(非常重要)
1.什么是冲突 冲突是指当你在提交或者更新代码时被合并的文件与当前文件不一致.读起来有点绕,结合下面的案例理解. 从上面对冲突的定义来看,冲突时发生在同一个文件上的. 2.生产上冲突的场景 常见冲突的 ...
- maven中jar冲突解决
Maven中jar包冲突是开发过程中比较常见而又令人头疼的问题,我们需要知道 jar包冲突的原理,才能更好的去解决jar包冲突的问题.本文将从jar包冲突的原理和解决两个方面阐述Maven中jar包冲 ...
随机推荐
- [Js]JavaScript闭包和范围的快速测试
1. if (!("a" in window)) { var a = 1; } alert(a); [分析]代码含义:如果window不包含属性a,就声明一个变量a并赋值为1 ①J ...
- Power string(poj 2406)
题目大意,给出一个字符串s,求最大的k,使得s能表示成a^k的形式,如 abab 可以表示成(ab)^2: 方法:首先 先求kmp算法求出next数组:如果 len mod (len-next[len ...
- windows下svn自动更新
配置hooks下post-commit.bat文件,文件内容如下 @echo offSET REPOS=%1SET REV=%2SET DIR=%REPOS%/hooksSET PATH=%PATH% ...
- nuget的小Tips
1.nuget常用命令 nuget spec -a bin\Debug\DllName.dll -f //根据dll生成.nuspec文件,这样会生成无用的默认标签,比如licenseUrl.tags ...
- [vijos P1531] 食物链
做出的第一道NOI题目?(噗,还是看题解才会的…按某篇解题说的,这题就比我年轻四岁…T T 做的第一道IOI题目是USACO上的Packing Rectangles...这题比我还老!)对我等弱渣来说 ...
- CCNA 6.6
sh run (show running-config) enable disable login logout exit end enable password privilege level(g ...
- vector用法总结(转载)
一.vector的基本概念 vector是同一种类型的对象的集合,每个对象都有一个对应的整数索引值.和string对象一样,标准库负责管理存储元素的相关内存.我们把vector称为容器,是因为它可以包 ...
- 【转】Linux下nginx配置https协议访问的方法
一.配置nginx支持https协议访问,需要在编译安装nginx的时候添加相应的模块--with-http_ssl_module 查看nginx编译参数:/usr/local/nginx/sbin/ ...
- 《JAVA学习笔记(14-10---14-11抽象类)》
[14-10]面向对象-抽象类的产生 /* 描述狗,行为,吼叫. 描述狼,行为,吼叫. 发现他们之间有共性,可以进行向上抽取. 当然是抽取他们的所属共性类型,犬科. 犬科这类事物,都具备吼叫行为,但是 ...
- UIControlEvents 中各种event被触发的方式解释(zz)
转自:http://blog.csdn.net/yanxiaoqing/article/details/7108891 在控件事件中,简单解释下下面几个事件.说明:由于是在“iOS 模拟器”中测试的, ...