zoukankan      html  css  js  c++  java
  • git与eclipse集成之代码冲突与解决

    1.1. 代码冲突与解决

    目前使用git管理代码,产生冲突的原因,主要是当多个人向特性分支提交代码时,如果两个人修改了同一个文件,第二个人提交代码时就可能会冲突。

    举例说明:

    • 创建远程特性分支、远程个人分支

        远程特性分支:br_feature_ipush

        远程个人特性分支:br_user1_ipush

        远程个人特性分支:br_user2_ipush

    • 两个用户user1和user2修改同一个Java文件:com.security.sa.pls.simulate.Simulator
    • user1先完成修改,并且已经合入特性分支br_feature_ipush(先push到个人远端:br_user1_ipush,在提交MR请求合入br_feature_ipush)

     

    • user2修改了同一个文件,已经commit或通过push提交个人远端分支:br_user2_ipush

     

    • 此时有两个操作会导致冲突,如下所示
      •   更新远程特性分支代码到本地分支冲突场景(即Rebase时)

          用户user2更新远程特性分支代码到本地,选择工程,右键Team,rebase,并选择远程特性分支:br_feature_ipush

     

      点击Rebase按钮,则进行代码同步,此时会发生冲突。

    • Start Merge Tool to resole conflicts解决冲突
    • Skip this commit and continue rebasing the next commits

      跳过当前commit记录的冲突,以当前操作分支的修改为准,并进行下一个commit记录的同步

    • Abort rebase停止同步,取消rebase操作
    • Donothing(return to the workbench)返回到工作目录:可以选择手动解决冲突或取消rebase操作。

     

    解决完冲突,将冲突文件add to index,继续rebase操作

     

    push到远程个人特性分支

    如果出现如下这种情(解决冲突前已经push到远程分支),此时需要用强制提交。

     

    强制提交两种方式:TortoiseGIT强制提交

     

    Eclipse强制提交:选择工程,右键Team,Push Branch ‘xxxx’,如下图,并勾选强制覆盖选项。

     

    • 个人远程特性分支合入特性分支场景(即提交Merge Request时)

     

  • 相关阅读:
    windows+vs2017+C语言 引入mysql.h对MYSQL数据库的操作
    开发依赖和运行依赖
    vue-cli 如何修改或删除预设preset记录
    git stash 缓存本地修改 简介
    DWZ 框架详解
    vue 脚手架(二,项目依赖说明 package.json)
    vue 脚手架(一,创建脚手架)
    JavaScript Number() Vs new Number()
    Flex 布局的各属性取值解释
    mysql explain extended 查看 执行计划
  • 原文地址:https://www.cnblogs.com/xyhero/p/9393238.html
Copyright © 2011-2022 走看看