问题描述:

  • 远程仓库有一个README.md文件,直接在远程仓库中进行提交,添加内容”remote commited edit 1”
  • 本地仓库对应README.md文件未pull的情况下进行修改,添加内容”local no add edit”;
  • 本地修改未add到stage中,此时进行pull操作,出现冲突

如上所述的问题,使用idea git插件解决方法如下:

  • 当前状况下远程仓库与本地工作区域中README.md文件内容为
    这里写图片描述
    这里写图片描述
  • 远程仓库中”remote commited edit 2 .”为模拟他人提交的内容;
  • 本地工作区中”local no add edit 2 .”为在未fetch状况下本地进行的修改,而且未Add入Stage中;
    此时,版本控制日志如下:
    这里写图片描述
    关于上述面板中每个节点都是指本地仓库的各个分支的内容,通过commit和fetch/pull会生成新的节点右侧带有颜色的标签则表示当前节点对应的分支。
    可以看到,origin/master(紫色标签)、HEAD(黄色标记)和本地master(绿色标签)处于不同的commit节点。
  • 此时我们添加”local commit edit 1 .”并将本地工作区上changes 进行add和commit到本地仓库的master分支上去,此时出现新的commit节点,如下图示:
    这里写图片描述
    这里写图片描述
  • 此时,我们在远程仓库中的文件中新增”remote commited edit 3 .”然后fetch一下,情况如下图所示:
    这里写图片描述
    这里写图片描述
    我们可以看到,本地master更新内容commit后,新增绿色节点,分支线为主线右侧新增一条;此处规则为,最新一次提交内容到本地仓库分支中时,若提交内容与已有内容出现冲突,在此链状结构会在主线(褐色)中分支处一条支线,颜色与提交内容到分支的标签颜色相同。
  • Merge操作可以将连个有冲突的分支合并为一个,我们可以在主线的commit节点处右键,选择”Merge into current”
    这里写图片描述
  • 出现冲突处理提示
    这里写图片描述
  • 点击”Merge…”,处理冲突
    这里写图片描述
    圈中处都是处理冲突的功能键。
  • Merge成功后,版本控制log面板显示如下:
    这里写图片描述
    此时可以继续提交本地内容,成功后版本控制log面板显示如下:
    这里写图片描述
    远程仓库origin/master分支内容为:
    这里写图片描述
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐