zoukankan      html  css  js  c++  java
  • Eclipse中Egit冲突解决

    Eclipse中Egit冲突解决

    Git 作为进来最流行的分布式版本控制软件来说应用的十分广泛。EGit就是一款Eclipse上的Git插件。在使用Egit提交项目时,有时会产生冲突,需要对代码进行merge。这里对内容冲突的解决进行介绍。

    内容冲突是指两个用户修改了同一个文件的同一块区域,git会报告内容冲突。

    1. 产生内容冲突

    我们原始文件内容如下所示:

    clip_image002

    有两个项目组同时对其进行修改:

    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]”:

    clip_image004

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

    clip_image006

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

    clip_image008

    项目文件夹右侧有“↑1”和“↓1”,说明有一个未push的修改和一个未pull的修改。打开下面的History窗口,可以看到最上面的两条修改,一个由Jiangpeizhao提交,一个由Gordon提交。

    此时产生冲突。

    3. 解决冲突

    首先,将修改从远程pull到本地,点击下图的小按钮:

    clip_image009

    点击后如下图所示:

    clip_image011

    其中”<<<<<<< HEAD”、”=======”、“>>>>>>> branch 'master' of https://git.oschina.net/Jpz/SpringDemo2.git”直接的就是双方的修改。

    右击项目,选择”merge tool”:

    clip_image013

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

    clip_image015

    那么可能是由于没有在本地进行Commit或者没有进行pull。

    点击”merge tool”后弹出:

    clip_image017

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

    clip_image019

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

    clip_image021

    在下面填出的对话框中

    clip_image017[1]

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

    clip_image023

    手动来解决冲突,在本例中将这一行改为“System.out.println(“Hello, everyone”);”修改完后保持(ctrl+s,呵呵)。

    右击项目,选择”Add to git index”:

    clip_image025

    注意此时图标的变化。

    clip_image027

    4. 合并merge

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

    clip_image029

    弹出窗口如下:

    clip_image031

    点击“Commit”。如果是只有一个冲突,此时也可以直接点击“Commit and Push”

    点击“Commit”后如下所示,注意箭头数:

    clip_image033

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

    clip_image034

    最后如下所示:

    clip_image036

    点OK即可。

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

    可以查看history:

    clip_image040clip_image038

    关于Egit的其他操作课参考:

    http://www.cnblogs.com/sinojelly/archive/2011/08/07/2130172.html

    http://wiki.eclipse.org/EGit/User_Guide

  • 相关阅读:
    .NET 多线程 Task async await
    .NET5 MVC 文件目录
    Html 问题记录
    vue学习笔记(记录知识点)
    vue调试工具vue-devtools安装及使用
    node.js入坑记录
    vue从0开始笔记
    前端样式css问题记录
    谷歌浏览器chrome console 发送POST/GET请求
    jQuery的请求数据方式
  • 原文地址:https://www.cnblogs.com/mr-totoro/p/5785660.html
Copyright © 2011-2022 走看看