在 Emacs 中使用 Git Flow
文章目录
Git Flow 简介
随着 GitHub
的流行,越来越多人开始使用 Git
, Git
的强大在于我们可以随时随地的创建分支。
随时随地创建分支,给我带来了极大的方便,但同时,分支太多管理起来也是非常头疼。
Git
支持多人协作,如果没有一个规范的话,随着时间的变化,将会越来越难以管理。
这时 Git Flow 出现了,这个分支模型,为我们管理 Git
分支提供了一个模型,用来管理 Git
分支,有效的减少分支混乱不堪的情况。
Git Flow 安装
Git Flow
的安装非常简单,根据自己的操作系统选择对应的安装指令执行之后就安装好了。
Linux
|
|
macOS
|
|
初始化
安装好 Git Flow
之后,在需要使用的项目中用 git flow init
进行初始化,不然是没法使用 Git Flow
的功能的。
初始化的指令如下
|
|
Git Flow 分支模型
Git Flow 中有许多分支,我们先来看一下各个分支的作用
master 分支
master 分支上存放的是生产环境的代码,我们不应该在 master 上进行开发,也不要直接把改动提交到 master。
master 分支是一个长期存在的分支,是经过测试的稳定代码。
develop 分支
develop 分支是我们开发的基础分支,新的功能都是从 develop 检出的,也是一个长期存在的分支。
feature 分支
功能性分支,基于 develop 分支检出的,在功能开发完成后合并到 develop 并删除,属于临时性分支。这是一个开发经常打交道的分支。
新建 feature 分支的命令如下
|
|
新功能开发完毕后,使用如下命令结束新功能的开发
|
|
如果这个新功能是多个人合作开发的,可以使用如下命令推送到远程服务器中
|
|
从远程服务器拉取最新的功能分支可以使用如下命令
|
|
release 分支
release 分支的作用在于,我们的功能都开发完了,可以进行整体性测试的时候从 develop 分支检出,并部署到测试环境,让测试人员在此分支上进行测试,开发在这个分支上对测试测出的 bug 进行修复。
待功能修复完毕,觉得没问题后,部署到预发布环境,或者进行灰度发布,一切都没问题的后,可以合并到 master 和 develop 进行正式上线,部署到生产环境。
我们开发好后,要部署到测试环境可以通过如下命令
|
|
在通过测试后,可以通过如下命令合并到 master 和 develop
|
|
推送到远程和从远程拉取和 feature 上的操作类似,也是使用 publish
和 pull
这里不再赘述。
hotfix 分支
hotfix 的作用是在生产环境上发现 bug 时,需要进行修复,这时候就会从 master 分支检出,并在上面进行 bug 修复。修复完成后会合并到 master 和 develop 并删除,也是一个临时性分支。
hotfix 和 feature 不同的地方在于,feature 分支是从 develop 检出的,而 hotfix 是从 master 检出的。
当线上有 bug 了,我们要进行修复,这时候需要通过如下指令
|
|
bug 修复完成之后,通过如下指令进行发布新版本
|
|
在 Emacs 中配置 Git Flow
有了上面的知识做铺垫,使用起来就方便了,我们也知道怎么使用了。
不过在 Emacs
中使用还需要先进行配置一下,在 Emacs
中使用 Git Flow
需要用到 maigt-flow
这个 package
,它的配置如下。
|
|
配置好后在 maigt-mode
中使用 %
可以调出 Git Flow
的界面,如下所示
Emacs 中使用 Git Flow
初始化
上小节说到在 magit-mode
下使用 %
就能调出 Git Flow
的界面,接下来按下 i
选择初始化
之后按下
i
选择使用默认配置初始化
初始化好后会默认帮我们生成 develop 分支,如果没有的话。
feature
使用 feature
还是通过 %
开启,按下 f
选择 feature
之后按下
s
选择 start
然后再次按下
s
选择 start
在 minibuffer 中输入
feature_name
输入完成后,可以看到当前分支已经切换到了
feature/feature_test
分支
在功能开发完成后,也同样通过
%
调出 Git Flow
菜单,按下 f
选择 feature
,在接下来的菜单中按下 f
选择 Finish
接着再次按下
f
选择 Finish
最后会弹出一个菜单列表,选择我们之前创建的
feature_test
release
release
的操作和 feature
大同小异,这里使用动态图片进行演示
hotfix
hotfix
的操作也是和 feature
、 release
一致,这里不再演示,感兴趣的可以自己练练手,尝试尝试。
总结
Git Flow
是一个帮助我们管理 Git
的工具,可以让我们进行更好的使用 Git
协作。
Git Flow
虽然好,但是有点复杂,上手成本比较高,有些小伙伴不喜欢。可以根据实际情况选择是否需要在项目中使用。