【Git】Gerrit代码审核冲突解决方法

Gerrit冲突解决方法

    • Git常用命令
    • 场景一:本地文件内容冲突
    • 场景二:本地文件名冲突
    • 场景三:服务端任务冲突
    • 小结


Git常用命令


场景一:本地文件内容冲突

  • 冲突场景:不同用户修改同一文件

    ➢ user1、user2、服务端三个版本同步V 0.0;
    ➢ user1:先执行pull➜修改代码V 1.0➜commit➜push➜产生审核任务A
    ➢ 审核者:任务A审核结果设置code review +2➜submit
    ➢ user2:修改代码V 2.0➜发现没有先pull➜右键选择stash save(暂存修改)➜pull➜stash pop(释放修改)

    提示:本地文件合并冲突

  • 解决方法:

    ➢ user2:选中冲突文件➜右键选择edit conflict➜编辑完成并保存➜右键resolve…➜commit(不钩选Amend last commit)➜push➜产生审核任务B
    ➢ 审核者:任务B审核结果设置code review +2➜submit

场景二:本地文件名冲突

  • 冲突场景:不同用户修改不同文件

    ➢ user1、user2、服务端三个版本中的文件test名称相同;
    ➢ user1:执行pull➜修改文件名为test1➜commit➜push➜产生审核任务A
    ➢ 审核者:任务A审核结果设置code review +2➜submit
    ➢ user2:修改文件名为test2➜本地commit➜发现没有先pull➜执行pull

    提示:本地显示test1、test2文件冲突

  • 解决方法:

    ➢ user2:选中两个冲突的文件➜右键选择check for modification(显示三个文件名)➜删除test、test1➜右键选择test2➜选择edit conflict➜设置为Created状态(冲突解决)➜commit(不钩选Amend last commit)➜push➜产生审核任务B
    ➢ 审核者:任务B审核结果设置code review +2➜submit

场景三:服务端任务冲突

  • 冲突场景:不同用户产提交审核任务

    ➢ user1、user2、服务端三个版本同步V 0.0;
    ➢ user1:先执行pull修改代码V 1.0➜commit➜push➜产生审核任务A
    ➢ 审核者:任务A审核结果设置code review +2➜submit
    ➢ user2:修改代码V 2.0(没有先pull)➜commit➜push➜产生审核任务B

    提示:审核任务B合并冲突

  • 解决方法:

    ➢ 审核者:任务B审核结果设置-2
    ➢ user2:先执行pull➜本地文件会显示冲突状态➜右键选择edit conflict➜编辑完成并保存➜右键resolve…➜commit(不钩选Amend last commit)➜push➜产生审核任务C
    ➢ 审核者:删除审核任务B➜任务C审核结果设置code review +2➜submit


小结

使用Gerrit解决冲突的方式有很多种,但解决冲突只是一种途径,尽量避免冲突提高软件迭代效率才是根本目的。减少冲突最好的方法就是修改代码前,先执行pull操作,保持本地端和服务端版本一致的条件下,再去修改、提交、推送代码。

你可能感兴趣的:(Git,git,源代码管理,代码复审,软件工程,团队开发)