架构师

您现在的位置是:首页 > 技术博客 > 开发环境

开发环境

git与eclipse集成之代码冲突与解决

架构师小跟班 2019-08-28 开发环境
1.1. 代码冲突与解决目前使用git管理代码,产生冲突的原因,主要是当多个人向特性分支提交代码时,如果两个人修改了同一个文件,第二个人提交代码时就可能会冲突。举例说明:创建远程

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


文章评论