Git-flow 相对于标准 git 命令的优势
在这篇文章中,我们将研究一个名为的 git 工作流程Git-flow
,并讨论为什么应该使用它而不是标准 git 命令。
什么是 git-flow?
git-flow
近年来,它变得非常流行,因为它提供了一些额外的命令。
它可以自动执行一些使用标准 git 命令时需要手动完成的任务。
git-flow 绝不是 Git 的替代品。它只是一组以巧妙方式组合标准 Git 命令的脚本。
安装 Git-flow
视窗:
对于 Windows 用户,Git for Windows
推荐使用 。请按照Git for Windows 主页
上的说明安装 Git for Windows。从 开始,(AVH 版本)已包含在内,因此您已完成所有操作。Git for Windows 2.6.4
GitFlow
Linux(Ubuntu 18.04):
git-flow AVH edition
git-flow AVH Edition
已随 Ubuntu 打包。您可以使用以下命令安装最新版本。
$ sudo apt-get install git-flow
对于其他 Linux 发行版,请遵循以下说明
Mac OS X系统:
对于 Mac OS 安装,请按照以下说明操作
在项目中使用 Git-flow
您可以完全自行决定是否在此存储库中并行使用特殊的 git-flow 命令和常规 Git 命令。
首先,您必须git-flow
使用命令在项目中进行初始化git flow init
$ git flow init
Initialized empty Git repository in E:/Development/projects/git-flow-tut/.git/
No branches exist yet. Base branches must be created now.
Branch name for production releases: [master]
Branch name for "next release" development: [develop]
How to name your supporting branch prefixes?
Feature branches? [feature/]
Bugfix branches? [bugfix/]
Release branches? [release/]
Hotfix branches? [hotfix/]
Support branches? [support/]
Version tag prefix? []
Hooks and filters directory? [E:/Development/projects/git-flow-tut/.git/hooks]
虽然设置助手允许您输入任何您喜欢的名称,但我强烈建议您坚持使用默认命名方案,并只需按 确认每个步骤Enter
。
Git-flow 分支模型
工作流模型git-flow
需要您的存储库中有两个分支。
- master分支包含生产环境的稳定代码。您无需直接提交到 master 分支
master
,而是可以在单独的分支上工作feature
。 - 开发是您进行任何新开发工作的基础:当您启动新的功能分支时,它将基于开发。
这两个分支会在整个项目生命周期内保留。其他分支(例如用于功能或发布的分支)会根据需要创建,并在完成其用途后删除。
功能分支
开始新功能
假设您要在项目中添加一个支付网关。这是一个新功能。
让我们开始一个新payment-gateway
功能
$ git flow feature start payment-gateway
Switched to a new branch 'feature/payment-gateway'
Summary of actions:
- A new branch 'feature/payment-gateway' was created, based on 'develop'
- You are now on branch 'feature/payment-gateway'
此操作基于“开发”创建一个新的功能分支并切换到它。
完成功能
在您完成并完成所有艰苦的工作之后,就该完成该功能了。
$ git flow feature finish payment-gateway
Switched to branch 'develop'
Updating 6bcf266..41748ad
Deleted branch feature/payment-gateway.
此操作后,Git-flow
删除(现已过时的)功能分支并检出到“开发”分支。
发布分支
开始发布
当“develop”分支准备好发布新版本时,使用 git flow release 命令启动发布。它会从“develop”分支创建一个发布分支。
$ git flow release start 1.1.5
Switched to a new branch 'release/1.1.5'
完成发布
当需要完成发布时,请使用以下命令
$ git flow release finish 1.1.5
此操作将立即执行以下任务:
- 它从远程存储库中提取信息以确保您保持最新状态。
- 然后,该版本将合并回
master
和develop
分支,这样您的生产代码以及所有功能分支都将基于最新代码。 - 发布提交带有发布名称的标签(
1.1.5
在我们的示例中)。 - 删除发布分支并签出至
develop
。
热修复分支
这些是针对即使在发布后经过彻底测试仍可能出现的恶意错误。
启动修补程序
$ git flow hotfix start missing-link
hotfix
与分支非常相似release
。不过,就像发布版本一样,我们会提升项目的版本号,当然,还会修复那个错误!
但我们需要记住一件事,它Hotfix
基于master
分支,而release
它基于develop
分支
完成热修复
$ git flow hotfix finish missing-link
该过程与完成发布非常相似:
- 这些更改被合并到
master
和 中develop
,以确保错误不会再次出现在下一个版本中。 - 已
hotfix
标记以便于参考。 - 该分支被删除,并且“develop”再次被签出。
所以现在是构建/部署您的产品的时候了。
作为奖励,这里有一个很棒的插图,可以帮助您Git-flow
轻松记住命令。
我在Daniel Kummer 的 git-flow cheatsheet 仓库里找到了它。你可以去他的仓库里查看一下。
感谢您阅读我的博客。希望它能帮助您和您的团队提高工作效率。
请告诉我您是否已经在使用Git-flow
或计划使用它?
在网络上找到我🕸:
- 💻访问我的网站
- 🌟 查看我的Substack
- 😸 在 GitHub 上查看我的Repos
- 🦊 在 GitLab 上查看我的仓库
- 📦 在 NPM 上检查我的软件包
- 🔗在 LinkedIn 上查看我的个人资料
- 📝在 Dev.to 上查看我的博客
- 😜 在Instagram上关注我
- 📚 查看我的Goodreads 个人资料
- 📪在这里联系我