37

就像代码需要代码规范一样,代码管理同样需要一个清晰的流程和规范,git flow制定了一个比较规范的分支管理和版本发布方案。Git flow的优点是清晰可控,缺点是相对复杂,需要同时维护两个长期分支(主分支master和开发分支develop)。

开局一张图

简单概括

master 生产主分支,发布到生产环境使用这个分支,由hotfix或者release分支合并过来,不直接提交代码。

develop 主开发分支 , 基于master分支克隆,由feature分支合并过来,一般不直接提交代码。

feature 功能开发分支 , 基于develop分支克隆 , 主要用于新需求新功能的开发,同时存在多个。

release 预发布分支 , 基于feature分支合并到develop之后 , 从develop分支克隆,测试完成后合并到master并打上版本号,同时也合并到develop。

hotfix 补丁分支 , 基于master分支克隆 , 主要用于对线上的版本进行BUG修复,完成后合并到master分支和develop分支。

举例说明

  1. 从master分支上创建develop分支,并推送到远端
git checkout –b develop
git push -u origin develop
  1. 开始 Feature
# feaeure分支基于develop创建
git checkout -b some-feature develop
# 或者, 推送至远程服务器:
git push -u origin some-feature    

# 一波操作   
git status
git add .
git push
git commit    
  1. 完成 Feature
# 切换develop分支
git checkout develop 
git pull origin develop

# 合并到develop分支并push
git merge --no-ff some-feature
git push origin develop

# 删除feature分支
git branch -d some-feature
git push origin --delete some-feature  

4 .开始 Release

# Release分支基于develop创建
git checkout -b some-release develop
# ...一系列操作后提交代码和分支

5 .完成Release

# 代码发布后合并到master分支并提交
git checkout master
git merge --no-ff some-release
git tag -a 0.1


# 合并到develop分支并提交
git checkout 
git merge --no-ff some-release

# 删除release分支
git branch -d some-release
git push origin --delete some-release  
  1. 开始 Hotfix
# Hotfix分支基于master创建
git checkout -b hotfix-0.1.1 master  
# ...一系列操作后提交代码和分支
  1. 完成Hotfix
# 合并到master分支并提交
git checkout master
git merge --no-ff hotfix-0.1.1
git tag -a 0.1.1
# 合并到develop分支并提交
git checkout develop
git merge --no-ff hotfix-0.1.1
# 删除hotfix分支
git branch -d hotfix-0.1
git push origin --delete  hotfix-0.1.1

Git flow工具

每次提交分支时都要切换合并删除分支,很多命令,流程就是记不住,肿么办呢,当然有好用的工具可以用~

SourceTree

window电脑使用方法。

安装并把git代码拖到下图中

点击git工作流使用git-flow初始化项目

初始化完成后在点击git工作流创建分支

一系列操作提交代码上传分支后点击git工作流 ->完成功能->确定即可,SourceTree会自动帮你合并分支删除分支


其他release和hotfix同样操作

mac版安装使用基本没什么问题,command+control+f调出面板安装和使用。

以下是window版本安装使用过程中遇到的问题

  1. 软件安装注册问题,3.*版本的解决方法点击我
  2. 安装完成后,创建feature,release等时没有前缀,解决方法
  • 在项目根目录下找到 .git/config 文件
  • 找到 [gitflow "prefix"] 配置选项, 这时候看起来应该是这样的:
[gitflow "prefix"]
    feature = 
    bugfix = 
    release = 
    hotfix = 
    support = 
    versiontag = 
  • 修改配置选项为:
[gitflow "prefix"]
    feature = feature/
    bugfix = bugfix/
    release = release/
    hotfix = hotfix/
    support = support/
    versiontag = 

VSCode编辑器使用gitflow插件


安装完后Ctrl+Shift+P:打开命令面板。在打开的输入框内gitflow命令,使用git-flow初始化项目后就可以用了。


zhou_web
1.6k 声望1.1k 粉丝