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时)

     

  • 相关阅读:
    STL源码剖析之_allocate函数
    PAT 1018. Public Bike Management
    PAT 1016. Phone Bills
    PAT 1012. The Best Rank
    PAT 1014. Waiting in Line
    PAT 1026. Table Tennis
    PAT 1017. Queueing at Bank
    STL源码剖析之list的sort函数实现
    吃到鸡蛋好吃,看看是哪只母鸡下的蛋:好用的Sqlite3
    cJSON
  • 原文地址:https://www.cnblogs.com/xyhero/p/9393238.html
Copyright © 2011-2022 走看看