原文链接: Git 分支管理策略
最近,团队新入职了一些小伙伴,在开发过程中,他们问我 Git 分支是如何管理的,以及应该怎么提交代码?
我大概说了一些规则,但仔细想来,好像也并没有形成一个清晰规范的流程 。所以查了一些资料,总结出下面这篇文章,一共包含四种常见的分支管理策略,分享给大家 。
Git flow
文章插图
在这种模式下,主要维护了两类分支:
- 主要分支 (The main branch)
- master
- develop
- 辅助分支 (Supporting branch)
- feature branch (功能分支)
- release branch (预发布分支)
- hotfix branch (热修复分支)
developdevelop 分支用于日常开发,保存了开发过程中最新的代码 。
当 develop 分支上的代码达到稳定,并且具备发版状态时,需要将 develop 的代码合并到 master,并且打一个带有发布版本号的 tag 。
创建 develop 分支:
git checkout -b develop master将 develop 合并到 master:
# 切换到 master 分支git checkout master# 对 develop 分支进行合并git merge --no-ff develop--no-ff 参数的作用是使当前的合并操作总是创建一个新的 commit 对象,即使该合并被执行为快进式(fast-forward)合并 。
这样可以避免丢失掉该功能分支的历史信息,并且将针对该功能的所有提交都集中到一起 。这样解释也并不是很易懂,通过下图来对比一下就比较明显了:
feature
- 分支来源:develop
- 合并到分支:develop
- 分支命名约定:feature-*
功能分支通常只存在于开发者的本地仓库中,并不包含在远程库中 。
创建一个功能分支:
git checkout -b feature-x develop开发完成后,将功能分支合并到 develop 分支:
git checkout developgit merge --no-ff feature-x删除 feature 分支:
git branch -d feature-xrelease
- 分支来源:develop
- 合并到分支:develop,master
- 分支命名约定:release-*
预发布分支是从 develop 分支上分出来的,预发布结束以后,必须合并进 develop 和 master 分支 。
创建一个预发布分支:
git checkout -b release-1.2 develop确认没有问题后,合并到 master 分支:
git checkout mastergit merge --no-ff release-1.2# 对合并生成的新节点,做一个标签git tag -a 1.2再合并到 develop 分支:
git checkout developgit merge --no-ff release-1.2最后,删除预发布分支:
git branch -d release-1.2hotfix
- 分支来源:master
- 合并到分支:develop,master
- 分支命名约定:hotfix-*
经验总结扩展阅读
- 【Azure API 管理】Azure APIM服务集成在内部虚拟网络后,在内部环境中打开APIM门户使用APIs中的TEST功能失败
- 刚刚出壳的小鸡苗该怎么养(小鸡苗刚回来怎样管理)
- 如何做好小雏鸡的饲养管理(雏鸡的饲养管理关键技术)
- Git创建、diff代码、回退版本、撤回代码,学废了吗
- 文化产业管理专业是干什么的 毕业能做什么工作
- 2023物流管理专业就业方向 找什么工作合适
- 1.python基础使用
- 2023应急技术与管理专业课程有哪些 就业如何
- 小区业主可以换掉物业管理公司吗
- qq下载的文件在文件管理找不到 QQ接收的文件在哪个文件夹