1.简介

  • git flow是一个代码管理流程,不可避免的会涉及到多人协作。
  • git flow是git分支的一种规范,或者叫做推荐的管理流程,简单的来说就是通过规则化流程,使得各个岗位的人能够更高效的协同工作。

2.分支

  • 根据git flow的规范,我们要将git的分支分为master、develop、hotfix、release、feature这五个分支。
  • 存在两个长期分支

​ 1.主分支 master

​ 2.开发分支 develop

  • 三个短期分支

​ 1.功能分支 feature

​ 2.补丁分支 hotfix

​ 3.预发分支 release

  • git flow的安装:

1.brew的安装

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2.git flow的安装

brew install git-flow
  • 主要功能
  1. master分支:用于存放对外发布的版本,任何时候在这个分支获取到的都是稳定的已经发布的版本。
  2. develop分支:用于日常开发,存放最新的开发版
  3. feature分支:可以存在多个,他是基于develop分支被创建,一般根据所需开发的功能来命名分支,每一个新的功能可以创建一个新的分支,开发结束后,需要将其合并到develop分支上
  4. hotfix分支:hotfix分支用来修复生产中的紧急bug,由于develop分支处于开发过程中,代码不稳定,不能直接应用于生产
  5. release分支:它是预发布的版本,当我们认为develop版本的代码趋于成熟,我们可以打一个release分支,在这个分支上测试完成之后,要将代码合并到master分支和develop上,master分支是线上版本,而合并到develop版本是在测试过程中,会对一些小的细节问题进行修改,因此这些优化的内容也应该合并到最终版本以及开发版本中。
  • 注意事项:
  1. 所有开发分支从develop分支拉。
  2. 只要有合并到master分支的操作,都需要和develop分支合并,保证同步。
  3. master和develop分支是主要分支,主要分支每种类型只能有一个,派生分支每个类型可以同时存在多个。

3.常用操作流程

1.切换到本地仓库工作区

通过 cd 切换

2.从远程仓库克隆代码到本地仓库

$git clone https://xxxx@localhost:8443/r/valve/V5-Lora.$git

3.基于master分支,创建develop分支

$git checkout master  //切换到master分支
$git checkout -b develop  //基于master分支克隆develop分支,并在克隆完成后跳到develop分支
$git push origin develop  //推送develop分支到远程仓库

4.在本地仓库的开发流程

完成一个功能或者一天的工作结束时,将代码提交到本地仓库

$git add .  //提交到暂存区
$git commit -m '修改说明'  //提交到本地仓库,并在说明中进行提交说明
$git tag -m '简要描述' v0.0.1  //每完成一个功能点可以对代码进行打包

5.推送到远程仓库

当完成一个功能或者阶段工作时,将代码推送到远程仓库develop分支

$git pull  //执行代码拉取操作,防止代码冲突
$git push origin develop。//推送代码到远程仓库

6.将代码发布到测试分支

完成代码的某个阶段后,启动小批量测试工作,将代码发布到测试分支release

$git checkout develop 
$git checkout -b release 
$git push origin release

7.后续测试提交bug后修复

  • 从远程仓库拉取代码
$git clone 地址  //克隆仓库
$git branch -r   //查看远程仓库分支情况:克隆仓库时只能克隆master,因此需要拉取指定分支,我们使用$git branch -r 查看远程分支情况
origin/HEAD -> origin/master
origin/dev
origin/master
origin/release
$git checkout -b release origin/release //拉取测试分支

8.测试工作完成后,合并代码到develop分支

$git checkout develop  //切换到develop分支
$git merge release  //执行合并操作,将release分支代码合并到develop分支

9.开发工作和测试工作完成后,发布时将develip分支合并到主分支上

$git checkout master 
$git merge develop 

10.阶段开发完成后,打一个tag

$git tag -m 'v1.0.0 首版' v1.0.0  //创建里程碑tag
$git push origin v1.0.0  //推送tag到远程仓库
Last modification:December 29th, 2019 at 11:37 pm
来杯coffee吧