Git工作流

2021-05-27  本文已影响0人  零一间

Git工作流概述

什么是Git工作流?你可以理解为代码管理的分支策略,它不仅仅是版本管理范畴,更服务于项目流程管理和团队协同开发。所以,有必要制定适合自己研发场景的工作流。

下面介绍四种工作流的工作方式、优缺点,以及使用中的一些注意事项。

研发团队可以根据实际研发场景制定合理的工作流,能有效提高项目管理水平和团队协同开发能力, 并通过代码管理平台,高效、安全的管理代码资产,将更多的精力集中在业务开发上,实现持续集成、持续交付和快速迭代的目标。

集中式工作流

集中式工作流适合5人左右小开发团队,或是刚从SVN工具转型为Git的团队,它只有一个默认的maste分支(相当于svn的trunk主分支),所有人的修改都是在master分支上进行的。但是,这种工作流无法充分发挥git优势和多人协同,不推荐使用。

工作方式

开发人员将master分支从中央仓库克隆到本地,修改完成后再推送回中央仓库master分支。

优点

不涉及分支交互操作。

缺点

Tips:如何尽量避免产生冲突和不合理的提交历史?

开发人员在开发一个新功能之前,一定要在本地同步中央仓库最新代码,使自己的工作基于最新的代码之上;开发完成后,在提交新功能到中央仓库前,需要先fetch中央库的新增提交,并rebase自己的提交。这样做的目的是,把自己的修改加到中央仓别人已经提交的修改之上,使最终的提交记录是一个完美的线性历史,而不是环形,工作流举例如下图所示。

img
  1. 开发人员A和开发人员B同时在某个时间拉取了中央仓库的代码。
  2. 开发人员A先完成了自己的工作,并提交到中央仓库。
  3. 开发人员B需要在本地执行git pull –rebase中央仓库的新提交,这时开发人员B的本地仓库就包含了开发人员A修改的内容,并在A的基础上增加了自己的修改。
  4. 开发人员B将代码推送到中央仓库。

功能分支工作流

通过新建几个功能分支,增加开发者的交流和协作,它的理念是所有的功能开发都应该在master分支外的一个独立分支进行,这种方式隔离了开发者的工作空间不被互相干扰,保证了master分支的稳定性。

工作方式

开发人员每次在开始新功能开发前,需要在master分支上拉取一个新分支,并起个有描述性的名字,比如video-outputissue-#1061,这样可以让分支用途明确。功能分支不但存在开发人员本地仓库,也应该推送到中央仓库,这样就可以在代码不合入master分支的情况下与其他开发人员分享代码。

优点

缺点

只有一个master分支作为集成,仍然不是很稳定,不适合大型开发。

Gitflow工作流

Gitflow一般用于管理大型项目,它为不同的分支分配一个很明确的工作角色,并定义分支之间什么时候进行交互,如Gitflow工作流如下图所示。

点击放大

工作方式

开发人员提交新功能的两种途径:

优点

缺点

Forking工作流

Forking工作流区别于前三种工作流的最大特点是每个开发人员都有一个从公共仓库fork出来的属于自己的公共仓。Forking工作流适合外包、众包以及众创和开源场景。接包方的开发人员从项目公共仓fork自己的公共仓库进行操作,并不需要被项目公共仓直接授权,Forking工作流如下图所示。

点击放大

工作方式

  1. 将“项目公共仓”fork出一个“个人公共仓”。
  2. 将“个人公共仓”clone到“本地仓库”。
  3. 操作“本地仓库”,修改完成后提交到“个人公共仓”。
  4. 为“个人公共仓”提交一个pull request给项目维护者,申请代码合入“项目公共仓”。
  5. 项目维护者在本地review、验证本地提交,审核通过后push进入“项目公共仓”。

优点

缺点

提交开发人员代码到最终版本库的周期较长,步骤繁琐。

文章参考华为云
https://support.huaweicloud.com/bestpractice-codehub/codehub_practice_1005.html

上一篇 下一篇

猜你喜欢

热点阅读