美文网首页
公司分支与版本管理

公司分支与版本管理

作者: 东郭先生李 | 来源:发表于2018-05-06 15:19 被阅读239次

什么是代码分支

在代码开发中,我们为了方便版本管理和开发、bug修复等工作,将代码分开不同的版本,开发人员使用不同的版本开发时,看到的文件可以完全不冲突,各自开发各自的功能。叫做不同的代码分支。

创建分支时总是在以前的分支基础上复制出来的

分支创建后,在新创建的分支上开发虽然不影响原来分支的代码,但并不意味着新分支的代码是凭空产生的,两者完全不搭边。新分支总是从旧分支中复制出来的,然后才在上面修改。我们当然可以将新分支的文件全部改成面目全非,但这样有意义吗?这样做这两个分支还怎么合并呢?所以,新分支与旧分支之间其实最终差异应该都不大。比如,新分支是用来开发一个小功能的,两个分支最终只有十几个文件发生了修改,合并起来也不会有太多的冲突。

开发人员应重视版本管理

上次大众创新奖的开发影响到立项的测试,就是因为我们一直没有重视版本和分支管理导致的。我认为我们应该吸取这次教训。相对规范的分支管理有助于我们更好的管理代码,甚至大家开发时可以互不影响,也方便测试。

创建分支的原则

那么,我们应该如何使用分支呢?我们应该用什么样的原则去创建和使用代码分支?

开发互不影响

创建分支是为了开发人员开发新功能时互不影响。这是最基本的原则。如果A和B两个开发各自正在开发不同的新功能,那么他们应该各自在本地创建出各自的分支,并在各自的分支上进行开发。那么,他们开发的中间各自是不会产生冲突文件的。

修改bug不需要创建专门的分支

有些开发人员可能会有疑问:难道改一个bug也要专门创建一个分支吗?我认为这大可不必,一方面,这太麻烦,也不是不可以;另一方面,分支是添加新功能时用到的,这不符合这个原则。

合并分支时,冲突应该是很少的

分支合并是分支管理最常用到的功能。如果没有合并,分支也就失去了意义。然而,合并分支一个麻烦事就是文件冲突了。两个分支同时修改了同一个文件的同一行,合并分支时就会发生文件冲突。然而,好的分支管理这种冲突应该是很少的,否则开发人员应仔细分析冲突代码后再合并。

生产环境版本上去后,应立即创建新的代码分支

原来的代码分支属于历史分支,可以用来进行代码历史版本备份。

我们的项目如何进行分支管理

以我们双创为例,我们应当如何进行分支管理呢?这里没有绝对正确的意见,我以我自己的角度,结合项目实际,谈谈自己的想法。

主分支保持跟生产环境代码一致

我们把生产环境目前的代码所在的分支称为主分支。只有生产环境进行版本变更时,主分支的代码才会发生改变。而且,开发人员一般不会直接修改主分支的代码,主分支代码的变更都是通过合并其他分支产生的。

创建一个bug修复分支,用来修改已发现的主分支上的bug

当生产环境版本发生变更后,我们马上创建一个新的分支作为主分支(原来的主分支作为历史分支,备份代码了,我们不会再修改它)。这时候主分支的代码跟目前生产环境的代码一致。现在,在主分支的基础上,我们又复制一个新的分支,称为bug修复分支。开发人员可以在这个bug修复分支上修复bug。

开发新功能

一般情况,开发人员需要同时开发新功能和修复旧版本bug的任务。修复bug的分支上面已经讲过了,那么,开发人员如何在开发新功能时,跟其他人的任务不发生冲突呢?最好的办法就是开发新功能时,在修复bug的分支基础上checkout出新功能的开发分支来(本地创建即可)。开发并自测完成后,再切到修复bug分支上,将新功能分支合并过来。这样,修复bug的分支bug被修复,同时新功能也不断被合并过来。

合并修复bug分支到主分支

开发人员在修复bug分支上产生多个beta版本供测试人员测试。当测试人员认为版本测试通过,可以打包到生产环境时,开发人员切到主分支,正式将修复bug分支合并到主分支。这时候主分支的代码应该会跟当前测试环境的代码一致(修复bug分支与主分支代码一致)。这时候,相当走完了一个生产环境版本变更流程,之后按照上述的方法进行版本管理即可。

hotfixs

最后,我们讨论一下hotfixs。hotfixs我们用得比较少,其实很多规范的项目都有这个概念和做法。
当版本上生产环境后,如果我们发现的影响很大的bug时,不可能又上一个新版本解决这个问题。这时候我们通常在主分支的基础上创建出一个hotfixs分支,然后在这个分支上紧急修复bug,然后将修改过的文件直接替换到生产环境(注意,不会重新打包)。替换完成后,再将hotfixs分支合并到主分支。这时候,主分支再一次跟生产环境保持一致了。

相关文章

  • 公司分支与版本管理

    什么是代码分支 在代码开发中,我们为了方便版本管理和开发、bug修复等工作,将代码分开不同的版本,开发人员使用不同...

  • Git笔记

    Git教程 Git简介 安装Git 创建版本库 版本控制 远程仓库 分支管理 创建与合并分支 简单的命令 查看分支...

  • iOS小组代码分支管理

    代码分支管理规范 为了规范代码库分支管理和版本管理,使代码分支及版本结构清晰,方便维护,并避免由于维护造成的错误的...

  • git 分支规范

    git分支规范 目的 为了规范代码库分支管理 和 版本管理,使代码分支及版本结构清晰, 方便维护,并避免由于维护造...

  • git基本操作

    创建版本库 版本信息 远程仓库 分支管理 标签管理 自定义git

  • git常用命令

    svn与git原理的区别svn记录每一次版本的变动git将每个版本独立保存,有益于分支管理同时同样复制大量分支和文...

  • 在centos下如何用apache运行gitlab

    公司的代码管理需要从svn转为git。之所以放弃svn,我们主要考虑git具有更灵活的代码冲突管理、分支及版本管理...

  • Git三剑客之Git

    一、Git概述 版本管理的演变1)集中式的版本管理(SVN) 有集中的版本管理服务器 具备文件版本管理和分支管理能...

  • git工作流

    分支 git工作流使用多个分支来完成版本管理工作。这些分支包括master分支、develop分支、feature...

  • git 分支管理

    Git 本地分支管理 版本/分支查看、切换、创建和删除分支简写对照 co==checkout/br===branc...

网友评论

      本文标题:公司分支与版本管理

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