美文网首页Avg-Vue首页投稿(暂停使用,暂停投稿)程序员
Git多分支协作,减少master分支冲突的一种方案

Git多分支协作,减少master分支冲突的一种方案

作者: mdiep | 来源:发表于2017-10-24 15:02 被阅读46次

我们都知道,在使用Git作为版本管理,开发协作时候。master分支基本上代表着即将发布到生产环境的代码,在如此重要的分支中,是需要尽量减少它出错的概率的。

场景描述

这里希望描述的一种场景是,有两个并行的需求,需要同时开发。

  1. 一是这两个需求的上线日期接近
  2. 二是这两个需求修改的文件耦合度很高。

可能出现的问题: 如此可以想象到,最终合并分支代码回到master后,一定会在master上产生过多的冲突,而解决过多的冲突中可能会无意的修改到原来的业务逻辑,导致最终部署到生产环境后出现错误。

希望: 现在则希望在合并回到master分支后,不产生过多的冲突,避免master分支合并的简易,降低出现错误的可能性。

如何并行开始两个需求

当确定开始并行的两个需求时,一般会从master分支checkout两个分支,一般以需求命名。之后在对应的分支上完成需求的开发,开发完成并测试后会合并分支回master。

crate_branch.png

降低合并回master冲突的数量

再需求完成后,现在需要合并回master分支。我们先将dev_task_1分支合并回master,该分支合并不会有冲突,因为该分支从master中checkout后没有受到其他分支影响。

之后,我们需要将dev_task_2合并回到master分支中,这个时候由于和dev_task_1修改的文件耦合度很高,所以,必然会在master出现大量的冲突。

merge.png

此时,我们可以先从已经合并了dev_task_1的master中checkout一个零时分支temp_branch。之后将dev_task_2合并到分支temp_branch,此时所有的冲突会出现在temp_branch中,只需要在这里解决完所有的冲突。并在此测试通过后。

merge_temp.png

就可以将temp_branch合并回master了。此时就不会在master出现冲突。

merge_to_master.png

总结

整个过程并没有减少冲突的数量,只是通过转换冲突产生的分支,从而在降低了在master上解决冲突带来的风险。在此,你可能会吐槽,但是在多人协作的项目中,很多时候,master分支合并的权限你并没有,此时,需要他人来合并你开发的代码。对你的业务逻辑并不是很了解,就很有可能在解决冲突的时候出现错误。而且当一个需求开发完,不一定立即就会合并到master分支,当经历了一段时间后,此时自己已经有一点生疏,此时再合并回主分支的时候,也有可能产生错误。

所以当你开发完一个需求后,并通过测试后,就可以依照上诉的方法,通过生成一个新的分支,并在该分支解决完所有的冲突。然后等待他人来合并。


认为有用则点赞关注,无用飘过


喜欢请随意


Git多分支协作,减少master分支冲突的一种方案

相关文章

  • Git多分支协作,减少master分支冲突的一种方案

    我们都知道,在使用Git作为版本管理,开发协作时候。master分支基本上代表着即将发布到生产环境的代码,在如此重...

  • git 学习笔记4

    创建与合并分支 master 主分支HEAD 当前分支 分支冲突 git merge后发现分支冲突;git sta...

  • 2018-07-06 Git解决冲突

    Git进阶-解决冲突文件 问题说明: 本地分支:master&active 修改代码分支:master 需合并代码...

  • git常用命令

    切换分支git branch //查看当前分支git checkout master //切换到master分支 ...

  • git-workflow:Git分支和流程

    git-workflow:Git分支和流程 分支分类 使用下述git分支 master master 永远处于稳定...

  • Git同步非master分支

    分2步骤,下载master分支,pull 其他分支 下载 master 分支git clone xxx.git 进...

  • git分支

    查看分支git branch出现master分支 创建分支git branch ...创建后用git...

  • git 合并分支

    一、将分支合并到master 1、切换到master分支:git checkout master 2、将分支合并到...

  • git 冲突解决

    当前分支和master分枝分别有更新的时候 在执行git merge 合并分支的时候就可能起冲突 报错如下 Git...

  • git提交代码规范管理

    GIT分支管理 git远程分支主要包括:master develop fixbugmaster:整个项目主分支,...

网友评论

    本文标题:Git多分支协作,减少master分支冲突的一种方案

    本文链接:https://www.haomeiwen.com/subject/ilntpxtx.html