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

 

猜你喜欢

转载自www.cnblogs.com/xyhero/p/9393238.html