就像代码须要代码规范同样,代码管理一样须要一个清晰的流程和规范,git flow制定了一个比较规范的分支管理和版本发布方案。Git flow的优势是清晰可控,缺点是相对复杂,须要同时维护两个长期分支(主分支master和开发分支develop)。html
master 生产主分支,发布到生产环境使用这个分支,由hotfix或者release分支合并过来,不直接提交代码。git
develop 主开发分支 , 基于master分支克隆,由feature分支合并过来,通常不直接提交代码。服务器
feature 功能开发分支 , 基于develop分支克隆 , 主要用于新需求新功能的开发,同时存在多个。app
release 预发布分支 , 基于feature分支合并到develop以后 , 从develop分支克隆,测试完成后合并到master并打上版本号,同时也合并到develop。编辑器
hotfix 补丁分支 , 基于master分支克隆 , 主要用于对线上的版本进行BUG修复,完成后合并到master分支和develop分支。工具
git checkout –b develop git push -u origin develop
# feaeure分支基于develop建立 git checkout -b some-feature develop # 或者, 推送至远程服务器: git push -u origin some-feature # 一波操做 git status git add . git push git commit
# 切换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 .完成Releasespa
# 代码发布后合并到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
# Hotfix分支基于master建立 git checkout -b hotfix-0.1.1 master # ...一系列操做后提交代码和分支
# 合并到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
每次提交分支时都要切换合并删除分支,不少命令,流程就是记不住,肿么办呢,固然有好用的工具能够用~插件
window电脑使用方法。3d
安装并把git代码拖到下图中
点击git工做流使用git-flow初始化项目
初始化完成后在点击git工做流建立分支
一系列操做提交代码上传分支后点击git工做流 ->完成功能->肯定便可,SourceTree会自动帮你合并分支删除分支
其余release和hotfix一样操做
mac版安装使用基本没什么问题,command+control+f调出面板安装和使用。
如下是window版本安装使用过程当中遇到的问题
[gitflow "prefix"] feature = bugfix = release = hotfix = support = versiontag =
[gitflow "prefix"] feature = feature/ bugfix = bugfix/ release = release/ hotfix = hotfix/ support = support/ versiontag =
安装完后Ctrl+Shift+P:打开命令面板。在打开的输入框内gitflow命令,使用git-flow初始化项目后就能够用了。