如何在Vscode中使用Git和git-flow

摘要:使用 Git 作为管理工具时使用 git-flow 统一工作流程

什么是 git-flow?

git-flow 并不是要替代 Git,它仅仅是非常聪明有效地把标准的 Git 命令用脚本组合了起来。 严格来讲,你并不需要安装什么特别的东西就可以使用 git-flow 工作流程。你只需要了解,哪些工作流程是由哪些单独的任务所组成的,并且附带上正确的参数,以及在一个正确的顺序下简单执行那些对应的 Git 命令就可以了。当然,如果你使用 git-flow 脚本就会更加方便了,你就不需要把这些命令和顺序都记在脑子里。

在Vscode中安装 git-flow

在vs面板中打开扩展,输入关键词gitflow搜索


点击安装按钮,重新加载vs。


初始化

打开vs命令(Ctrl+Shift+P) 输入gitflow 选择 Gitflow:Initialize repository for gitflow,一路回车完成初始化


初始化后会有develop和master分支,这两个分支是长期分支:

  • master:只能用来包括产品代码。你不能直接工作在这个 master 分支上,而是在其他指定的,独立的特性分支中(这方面我们会马上谈到)。不直接提交改动到 master 分支上也是很多工作流程的一个共同的规则。
  • develop:是你进行任何新的开发的基础分支。当你开始一个新的功能分支时,它将是_开发_的基础。另外,该分支也汇集所有已经完成的功能,并等待被整合到 master 分支中。


使用 git-flow

功能开发(Feature)

功能开发是指Coder接收到新的开发任务,负责某部分的代码,如:用户登陆(user-login)

具体操作如下:

在vs中打开命令行工具并输入

$ git flow feature start user-login
Switched to a new branch 'feature/user-login'

Summary of actions:
- A new branch 'feature/user-login' was created, based on 'develop'
- You are now on branch 'feature/user-login'

Git-flow 会创建出一个feature/user-login的分支,此功能相关的代码在此分支上完成。

Coder编码完成后,需要完成功能并合并分支,如下:

$ git flow feature finish user-login
Switched to branch 'develop'
Updating d3986e9 0cd4ef0
Fast-forward
    login.html | 0
    1 file changed, 0 insertions(+), 0 deletions(-)
    create mode 100644 login.html
Deleted branch feature/user-login (was 0cd4ef0).

执行“feature finish” 命令后会把当前分支的工作合并到主 “develop” 分支中去,并且删除当前的开发分支。

版本管理(Releases)

releases是准备要发布的版本,包含要分布的功能和bug修复,而且这些功能和bug都经过了测试。

新建releases分支

$ git flow release start 1.2.3
Switched to a new branch 'release/1.2.3'

分支要根据版本号命名:

1表示大的版本,如整体升级或增加的大的模块等

2表示的功能升级或小的功能增加

3主要代表bug修复

完成releases分支

分支版本代码合并完成并测试后,进行完成releases。

git flow release finish 1.2.3

这个命令会完成如下一系列的操作: 

  1. 首先,git-flow 会拉取远程仓库,以确保目前是最新的版本。 
  2. 然后,release 的内容会被合并到 “master” 和 “develop” 两个分支中去,这样不仅产品代码为最新的版本,而且新的功能分支也将基于最新代码。 
  3. 为便于识别和做历史参考,release 会被标记上这个 release 的名字。
  4. 删除当前版本分支,checkout 到 “develop”。 

接下来把master部署到生产环境中就可以回家休息了。

Bug修复(Hotfix)

当版本发布后用户反馈有Bug时,通过Hotfix进行Bug修复。

$ git flow hotfix start password

创建出“hotfix/password”分支,Coder修复发现的 Bug 后,完成Hotfix。

$ git flow hotfix finish password

当前分支同时被合并到 “master”和 “develop” 中,这样就可以确保这个错误不会再次出现在下一个 release 中。

接下来把Master分支部署到生产中。