GIT FLOW使用流程

2,406 阅读3分钟

先简单介绍下个分支:

1.master分支:主分支,主要用于存放已发布的版本。

1.develop分支:开发分支,用于存放当前迭代的开发代码。

2.feature分支:最普遍的分支,可以说所有的新代码全部写在这个分支上。以develop分支为基础创建,在代码完成并通过代码评审时提交合并请求,合并至develop分支。

3.test分支:提供给测试环境的代码。

4.release分支:发布分支,基于完整的develop分支。

5.hotfix分支:热修复分支,基于master分支。

常用命令:

git init  在当前目录新建一个git仓库

git clone [项目地址]  拉取项目

git add .  将修改的文件提交到暂存区

git commit -m [提交备注信息]  提交到本地仓库

git status 查看未提交到暂存区的文件

git cherry -v 查看本地仓库未提交到远程仓库的commit

git pull 拉取远程仓库最新代码

git push 将本地仓库的代码提交至远程仓库

git fetch 通常用来查看其他人的进程,因为它取回的代码对你本地的开发代码没有影响

git stash 将本地修改(未提交到本地仓库)存入stash中

git stash list 查看上述列表

git stash pop 推出最近stash的内容

git stash pop [stash编号:stash@{2} ] 推出指定内容

git branch 查看本地分支

git branch -a 查看本地和远程分支

git branch a 新建a分支 但依然停留在当前分支

git checkout -b a 新建a分支并切换至新分支

git branch --track [branch] [remote-branch] 新建一个分支,与指定的远程分支建立追踪关系

git merge a 将a分支合并到当前分支

git cherry-pick a 选择a commit合并进当前分支

git log 查看当前分支的提交记录

git reset --hard [log标志] 将本地代码回滚至某一次commit并清除缓存区的内容

git reset --soft [log标志] 将本地代码回滚至某一次commit并保留缓存区的内容

日常开发:

以develop分支为基础创建开发分支feature/xxx,本地拉取此分支至本地,功能开发完成后提交合并请求合并至develop分支,然后以新的develop分支创建tetst分支提交测试,测试通过后将test分支合并到release发布分支,git flow release start 1.0.0进行最后一次前后端对接,修复完成push后使用git flow release finish 1.0.0结束,此命令会将最新修复的代码合并到master和develop中,此分支被删除,自动切换至develop分支。

若当前已发布版本仍存在问题,则使用hotfix分支,git flow hotfix start 1.0.0,修复完成push后git flow hotfix finish 1.0.0,此命令也会将最新修复的代码合并到master和develop中,以防止下次release分支在此出现此BUG,此分支被删除,自动切换至develop分支。

release和hotfix都会直接影响到版本号。

总结:

主要分支

  • master: 永远处在即将发布(production-ready)状态

  • develop: 最新的开发状态

辅助分支

  • feature: 开发新功能的分支, 基于 develop, 完成后 merge 回 develop

  • release: 准备要发布版本的分支, 用来修复 bug. 基于 develop, 完成后 merge 回 develop 和 master

  • hotfix: 修复 master 上的问题, 等不及 release 版本就必须马上上线. 基于 master, 完成后 merge 回 master 和 develop