Git 分支策略指南
作为一名自 2008 年以来一直从事开发人员的我,亲眼见证了版本控制系统的演变。从 SVN 开始,最终过渡到 Git,我见证了这些工具如何在我们的日常工作流程中变得不可或缺。让我分享一个详细的分支策略,该策略已被证明在管理代码库、确保稳定性和促进协作方面非常有效。
主要分行
-
main
(或master
)分行:- 可用于生产的代码。
- 仅包含经过彻底测试且稳定的代码。
- 直接提交受到限制;仅允许在代码审查和批准后通过拉取请求(PR)进行。
-
develop
分支:- 反映当前开发状态的最新代码库。
- 所有功能和修复在合并到之前都已集成到此分支中
main
。 - 作为所有新功能分支的基础。
支持分支机构
-
功能分支:
- 命名约定:
feature/<feature-name>
- 创建自:
develop
- 目的:开发新功能或增强功能。
- 合并:一旦完成并经过测试,就合并回
develop
。
- 命名约定:
-
错误修复分支:
- 命名约定:
bugfix/<issue-id>
- 创建于:(
develop
或者release
修复是否针对即将发布的版本) - 目的:修复开发过程中发现的错误。
- 合并:修复后再合并回去
develop
(或release
如果适用)。
- 命名约定:
-
发布分支:
- 命名约定:
release/<version-number>
- 创建自:
develop
- 目的:为新的产品发布做准备。
- 活动:最终测试、错误修复和准备发行说明。
- 合并:一旦准备好,就合并到两者
main
中develop
。
- 命名约定:
-
热修复分支:
- 命名约定:
hotfix/<issue-id>
- 创建自:
main
- 目的:用于需要直接投入生产的紧急修复。
- 合并:合并到两者
main
并develop
应用一次。
- 命名约定:
分支工作流程
-
功能开发:
develop
使用创建一个分支feature/<feature-name>
。- 实现该功能,提交更改,并将分支推送到存储库。
- 打开拉取请求以将功能分支合并到
develop
。 - 进行代码审查,执行必要的测试,并将更改合并到
develop
。
-
错误修复:
develop
使用创建一个分支bugfix/<issue-id>
。- 修复错误,提交更改,并推送分支。
- 打开一个拉取请求以将 bugfix 分支合并到
develop
。 - 经过审查和测试后,将更改合并到
develop
。
-
发布准备:
develop
使用创建一个分支release/<version-number>
。- 执行最终测试,修复任何最后一刻的错误,并更新文档。
- 一旦准备就绪,就将发布分支合并到两者
main
中develop
。
-
修补程序:
main
使用创建一个分支hotfix/<issue-id>
。- 应用修复、提交更改并推送分支。
- 打开拉取请求以将修补程序分支合并到
main
。 - 将更改合并
develop
到正在进行的开发中以包含修复。
最佳实践
- 定期合并:定期合并
develop
到功能分支以保持更新并避免集成问题。 - 代码审查:在合并任何分支之前进行强制性代码审查,以确保质量并遵守标准。
- 自动化测试:实现与自动化测试的持续集成,以便尽早发现问题并保持代码质量。
- 文档:保留所有更改的详细记录,包括代码中的注释、更新日志和全面的提交消息。
探索更多:AI 开发阶段
如果您有兴趣扩展 Git 分支策略以外的知识,请查看我们关于 AI 开发阶段的最新文章。这份全面的指南涵盖了开发 AI 解决方案所涉及的关键阶段,从初始规划到部署和维护。无论您是初学者还是经验丰富的专业人士,这篇文章都能提供宝贵的见解,帮助您应对复杂的 AI 开发环境。
SVN 与 Git 比较
SVN(Subversion)
- 集中版本控制: SVN 依靠中央服务器来存储项目文件的所有版本。
- 提交结构:更改直接提交到中央存储库。
- 分支:分支通常在服务器上创建,分支操作可能很慢并且占用大量资源。
- 合并:与 Git 相比,合并可能更复杂且效率更低。
Git
- 分布式版本控制: Git 允许每个开发人员拥有整个项目历史记录的本地副本。
- 提交结构:更改首先在本地提交,然后可以推送到远程存储库。
- 分支:分支轻量且快速,鼓励使用功能分支。
- 合并: Git 的合并功能更加先进,可以更轻松地集成来自不同分支的更改。
希望本指南能像 Git 成为我的日常伙伴一样,帮助到您。祝您编程愉快!
鏂囩珷鏉ユ簮锛�https://dev.to/ak_23/branching-strategy-guide-24d6