• 游戏
  • 工业
  • 资源
  • 社区
  • 学习
  • 支持
开发
Unity 引擎
为任何平台构建2D和3D游戏
下载计划和定价
商业化
应用内购买(IAP)
发现并管理各商店的IAP
聚合平台
最大化收入并优化变现
Ad Quality
保护您应用的用户体验
Tapjoy
建立长期用户忠诚度
所有变现产品
用户获取
用户获取
被发现并获取移动用户
Unity向量AI
将玩家与合适的游戏连接
Aura设备内广告
在用户高峰参与时触达用户
所有增长产品
使用案例
3D协作
实时构建和审查3D项目
沉浸式培训
在沉浸式环境中培训
客户体验
创建互动3D体验
所有行业解决方案
行业
制造业
实现运营卓越
零售
将店内体验转化为在线体验
汽车
提升创新和车内体验
所有行业
技术库
文档
官方用户手册和API参考
开发者工具
发布版本和问题跟踪器
路线图
查看即将推出的功能
术语表
技术术语库
洞察
案例分析
真实成功案例
最佳实践指南
专家提示和技巧
所有资源
新增功能
博客
更新、信息和技术提示
新闻
新闻、故事和新闻中心
社区中心
讨论
讨论、解决问题和连接
事件
全球和本地活动
社区故事
Made with Unity
展示Unity创作者
直播活动
加入开发者、创作者和内部人员
Unity奖项
庆祝全球的Unity创作者
适合每个级别
Unity Learn
免费掌握Unity技能
专业培训
通过Unity培训师提升您的团队
Unity新手
准备开始
开始您的学习
Unity基础路径
你是Unity 新手?开始您的旅程
使用指南
可操作的技巧和最佳实践
教育
对于学生
开启您的职业生涯
对于教育者
增强您的教学
教育资助许可证
将Unity的力量带入您的机构
认证
证明您的Unity精通
支持选项
获取帮助
帮助您在Unity中取得成功
成功计划
通过专家支持更快实现目标
常见问题解答
常见问题解答
联系我们
与我们的团队联系
计划和定价
语言
  • English
  • Deutsch
  • 日本語
  • Français
  • Português
  • 中文
  • Español
  • Русский
  • 한국어
社交
货币
采购
  • 产品
  • Unity Ads
  • 订阅
  • Unity Asset Store
  • 经销商
教育
  • 学生
  • 教师
  • 机构
  • 认证
  • 学习
  • 技能发展计划
下载
  • Unity Hub
  • 下载存档
  • Beta 版测试
Unity Labs
  • 实验室
  • 作品
资源
  • 学习平台
  • 社区
  • 文档
  • Unity QA
  • 常见问题解答
  • 服务状态
  • 案例分析
  • Made with Unity
Unity
  • 我们公司
  • 新闻简报
  • 博客
  • 事件
  • 工作机会
  • 帮助
  • 新闻
  • 合作伙伴
  • 投资人
  • 附属机构
  • 安防
  • 社会影响力
  • 包容性与多样性
  • 联系我们
版权所有 © 2025 Unity Technologies
  • 法律
  • 隐私政策
  • Cookie
  • 不要出售或分享我的个人信息

“Unity”、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其分支机构在美国及其他地区的商标或注册商标(单击此处获取更多信息)。其他名称或品牌是其各自所有者的商标。

Hero background image

如何实施任务分支工作流程

时刻准备部署。任务分支工作流程采用 DevOps 原则,帮助团队通过高质量变更的持续流实现速度。
查找更多最佳实践
探索解决方案
查找更多最佳实践
探索解决方案
  • 概述
  • 优势
  • 关键步骤
  • 最佳实践
  • 常见问题解答
探索解决方案
为方便起见,此网页已进行机器翻译。我们无法保证翻译内容的准确性或可靠性。如果您对翻译内容的准确性有疑问,请参阅此网页的官方英文版本。
请点击这里。
任务分支图像

什么是任务分支工作流程?

模式很简单:您可以在问题跟踪器中为每个新任务创建一个新分支。任务分支最适合与 Unity 版本控制一起使用,因为它可以轻松处理数千个分支。这种工作流程不是必需的,最终,您必须评估哪种工作流程最适合您的组织。

主要优势

平行发展

与只能使用单一分支的传统方法相比,任务分支工作流程能更好地促进并行开发。每个任务都有一个独立的分支,你可以随时从主分支发布任务。

内容始终受控

通常情况下,开发人员在提交变更时会非常谨慎,这可能会使变更长期处于源控制之外。任务分支工作流程允许频繁签入,因此您可以随时查看系统内的完整变更历史。

保持主枝清洁

主要分支组织是每任务分支法的目标之一。对进入主分支的所有内容进行严格控制,意味着不会轻易意外破坏构建,因为新的错误会被隔离在任务分支中。

任务分支工作流程的关键步骤

本着 DevOps 的精神,这种工作流程可以缩短任务周期,尽快将新内容投入生产。将软件部署扎根于日常工作中。

任务分支工作流程的关键步骤

  • 任务和任务分支
  • 开发
  • 回顾
  • 验证共识
  • 自动测试和合并
  • 部署
任务分支图像

任务和任务分支

该流程从问题跟踪器或项目管理系统中的一项任务开始:Jira、Bugzilla、Mantis、OnTime 或您自己的内部解决方案。这里的关键是,你所做的每一件事都必须有相关的任务。不管是新功能还是漏洞修复,都要为此创建一个任务。

然后,为该任务创建一个分支。

我们建议使用简单明了的分支命名规则:前缀(示例中为 "任务"),后跟问题跟踪器中的任务编号。这可帮助您保持更改的完整可追溯性。

任务分支图像

开发

在任务分支上开展工作,并根据需要进行尽可能多的核对。在注释中解释每一个步骤,以便向任何审稿人说明。

任务完成后,将分支的 "状态 "属性设置为 "已解决"。

或者,您也可以在问题跟踪器中将其标记为已完成。这完全取决于您的特定工具集,以及您最终将如何实际执行工作流程。

任务分支图像

回顾

将任务标记为已完成后,就可以让同事查看。

现在轮到审稿人查看您的改动,看他们能否发现您的编码风格中的错误、不一致之处,或设计中需要修改的地方。如果是这样,任务将重新打开,循环重新开始。

任务分支图像

验证共识

验证是一个可选步骤。

有些团队会对任务进行 "验证"--另一个团队成员会做一个简短的探索性测试,以确保新功能或变更是合理的。他们不会去找漏洞(自动测试已经解决了这个问题),而是从客户的角度来研究变化。可在属性中将状态设置为 "已验证"。

任务分支图像

自动测试和合并

配置您的持续集成 (CI) 系统,以监控具有给定属性集的所有分支。只有当分支达到给定状态(本例中为 "已验证")时,CI 系统才会考虑该分支。

一旦任务通过审核/验证,任务分支就会在合并到主分支之前自动进行测试。

如果测试套件通过了合并,就会得到确认并提交给 CI 系统进行构建和测试。这一过程有助于防止破坏构建。如果失败,进程将被重启,你将不得不从主程序中重新编译,以解决任何冲突。

任务分支图像

部署

如果测试通过,就会签入合并,分支就可以交付了。注意状态已设置为 "合并"。

如果新版本已准备就绪可以部署,就会在 main 上标注新的变更集,并将软件部署到生产环境中。

您可以在每项新任务通过此周期后发布新版本,也可以决定将几项任务归为一组。在实施持续部署时,将每个任务部署到生产中是最合理的工作流程。

最佳实践

最佳实践

  • 设置持续集成
  • 分支命名规范最佳实践
  • 缩短任务分支
  • 工作流程和文化
  • 保持任务分支的独立性
  • 以审稿人为中心办理登机手续
  • 完成的任务必须是可部署的
  • 功能切换
  • 使用功能切换
任务分支图像

设置持续集成

有了 Unity 版本控制功能,就可以使用所选 CI 工具(如 Jenkins、Bamboo 或Unity Cloud Build)的插件来配置自动测试和合并步骤。

这一步骤也可以使用 Unity 版本控制的合并机器人功能来协调。mergebot 可以合并这些分支,并触发构建以确保其正常运行。只有在构建良好的情况下,才会确认合并,以避免构建出现问题。

任务分支图像

分支命名规范最佳实践

我们喜欢使用以下命名规则:前缀 + 任务编号。例如,分支可以命名为 task1213、task1209 和 task1221。前缀是 "任务",数字代表相关问题跟踪器中的实际任务编号。

截图还显示了每个分支的描述和编号,因为分支资源管理器是从问题跟踪器中获取编号的。您还可以选择 "显示分支任务信息",查看分支说明。

缩短任务分支

Scrum 规则规定,任务时间不应超过 16 小时。这种做法可以控制项目的时间进度。

必须迅速关闭任务分支。理想情况下,你应该有很多小任务,只需几个小时就能完成。这种结构有助于保持项目节奏,促进持续部署。例如,一项大型任务需要持续一周的时间,这就会使循环停止。

有一个红旗要牢记:不要创建 "大砍刀切割 "任务。如果需要将一项任务切割成更小的部分,应确保该任务仍然具有独立的意义,并且可以独立部署。

任务分支图像

工作流程和文化

任务分支工作流程只有得到整个团队的认可,才能取得成功。

与任何 DevOps 流程一样,这一工作流程也包含文化因素。任务分支就是要公开交流进展情况,避免各自为政。在规定工作流程或处理任务的特定方式之前,你需要推动协调。帮助团队成员了解今天完成较大任务中的一小部分的好处,而不是在更大的任务中挣扎更长时间。

任务分支图像

保持任务分支的独立性

问问你自己(或你的队友):您真的需要刚在任务 1213 中完成的代码来启动任务 1209 吗?

任务往往比你想象的要独立得多。是的,它们可能是同一个主题,但您不需要接触完全相同的代码。您只需添加一些新内容,并相信合并程序会完成其工作。

假设上例中的 1213 和 1209 是错误修正,而不是任务。你不希望一个依赖于另一个。您希望它们击中主屏幕并尽快释放。即使它们接触的是相同的代码,也是不同的修复方法。

查看高级技术
任务分支图像

以审稿人为中心办理登机手续

每一次核对都必须帮助审核员了解你的思路和过程,从而理解你是如何完成任务的。

在签到的备注中留下详细信息会对审核员有所帮助,因为他们不需要对整个分行进行衍射。取而代之的是逐个变更集进行比较。他们会按照你预先录制的解说,明确每个阶段的任务。他们不会发现自己正在查看一个包含 100 多个修改文件的粗体列表。相反,他们会循序渐进。

详细探索
任务分支图像

完成的任务必须是可部署的

每个任务分支完成后都必须准备好进行整合。如果更改很脆弱,或者会使产品表现不佳,那么就不应该将任务设置为已完成。

为了获得自动化带来的好处,这只是一个很小的代价。团队必须就 "完成 "的定义达成一致,即 "为生产做好准备"。作为回报,您可以高枕无忧,因为您知道将您的任务转移到生产中是非常容易的,完全自动化,并且不会导致凌晨 2:00 的消防演习。

功能切换

什么是功能切换?这些对于持续部署至关重要。这种软件开发技术允许在功能完成并准备发布之前对其进行测试。

功能切换可以在运行时隐藏、启用或禁用该功能。它允许您只为开发团队、少数早期用户或所有人启用某项功能。例如,开发人员可以在测试时启用某项功能,而在开发过程中对其他用户禁用该功能。

任务分支图像

使用功能切换

我们来看一个例子。您有一个大型功能,分为七个部分,这些部分将被转换为任务,并使用任务分支来实现。如果没有其他准备,怎么可能部署第 4 部分?

第 4 部分可以合并到主分支,甚至可以使用功能切换按钮在隐藏状态下部署。

隐藏并不意味着新代码在发布前不进行测试。当整个功能准备就绪可以启动时,各个部分已经过多次测试。最后一部分的整合不会引发大爆炸式的合并,它只是一个较小的部分进入主部分。

更多有用的指南

任务分支图像

组织 Unity 项目的最佳实践

通过这些为 Unity 项目设定标准的实用技巧,让您的团队高效开发游戏。

了解方法
任务分支图像

版本控制的最佳实践

探索最佳实践,帮助你充分利用所选择的版本控制系统。

深入了解
任务分支图像
想了解更多?

如果您觉得这篇文章对您有帮助,请查看有关组织项目的最佳实践的其他资源。

阅读我们的免费电子书
探索解决方案

常见问题解答

Unity 版本控制包括哪些部分?

+

Plastic 可与哪些 CI 系统集成?

+

我可以插入自己的 CI 吗?

+

我需要 CI 系统和问题跟踪器吗?

+

Unity 版本控制中的任务分支是强制性的吗?

+

每项任务都需要在 Jira 中设置任务吗?

+

如果我的新功能对一项任务来说太大了怎么办?

+

这些内容有帮助吗?

是的!

继续发送

还行。

有待改进