git flow应用

先前写过一篇关于gitflow的基本命令, 现在看看具体如何使用

安装

brew install git-flow

使用

1. 初始化

# 新建项目, 执行下面命令一路回车
git flow init

初始化好之后查看下此时的分支

$ git branch
* develop
  master

develop分支将会是大多数工作完成的地方,master分支就是用来保证生产环境的代码追踪。所以,从现在开始,不要直接在master分支上操作,你应该使用git push origin develop来推送代码到你的代码仓库。

2. feature

# 开始开发,新建一个功能分支 比如第一步做权限认证功能
git flow feature start auth

看到有个提示,当功能开发完成之后,执行git flow feature finish auth

它会帮你合并功能到本地dev分支,并删除feature分支

当你回到develop分支的时候,你的功能分支将会被合并到develop分支。在git-flow的内部,他是使用的git merge --no-ff feature/auth来确保在你移除功能分支之前,不会丢失人和的历史信息。

3.版本发布

当你准备部署时,需要打标签并发布版本,就可以使用git flow的版本发布分支

# 给要发布的版本打个标
$ git flow release start 0.1.0
Switched to a new branch 'release/0.1.0'
Summary of actions:
- A new branch 'release/0.1.0' was created, based on 'develop'
- You are now on branch 'release/0.1.0'
Follow-up actions:
- Bump the version number now!
- Start committing last-minute fixes in preparing your release
- When done, run:
     git flow release finish '0.1.0'

之后,结束此次版本发布

$ git flow release finish 0.1.0
Switched to branch 'master'
Merge made by the 'recursive' strategy.
 authentication.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 authentication.txt
Deleted branch release/0.1.0 (was 1b26f7c).
Summary of actions:
- Latest objects have been fetched from 'origin'
- Release branch has been merged into 'master'
- The release was tagged '0.1.0'
- Release branch has been back-merged into 'develop'
- Release branch 'release/0.1.0' has been deleted

git-flow从origin上拉取最新的代码,合并release分支到master上,为版本打上标签,并且在移除release分支之前,将所有的东西备份,合并到了develop分支上。

你仍然在master分支上,所以,你可以在你回到develop分支之前进行部署工作。git-flow会确保develop分支上的代码是与master上发布的代码是同步的。

4.生产环境的修复分支

由于总是保持生产环境的代码和master上的一致,所以,你可以很快的修复生产环境上的问题。

例如,你的assets文件在生产环境上没有加载出来,你应该回滚你的部署过程,并且新开一个hotfix分支:

$ git flow hotfix start assets
Switched to a new branch 'hotfix/assets'

Summary of actions:
- A new branch 'hotfix/assets' was created, based on 'master'
- You are now on branch 'hotfix/assets'

Follow-up actions:
- Bump the version number now!
- Start committing your hot fixes
- When done, run:

     git flow hotfix finish 'assets'

与完成版本发布类似,hotfix分支也会被合并到masterdevelop分支上。发布的版本会被打上标签,而hotfix分支会被移除。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐