您想找什么?
Hero background image
什么是Version Control?
Version Control 也称为源代码管理,它使用工具来跟踪一段时间以来对源代码所做的更改或编辑。Version Control 支持开发人员之间快速高效的协作,同时保持代码完整性,使软件开发团队无需担心代码冲突即可工作。
Version Control,解释

Version Control Systems (VCS) 允许团队备份和归档其项目的源代码。这使得审查和编辑存储库或在出现构建破坏错误时恢复以前的版本变得更加容易。

Version Control 是跟踪和管理源代码和资产的更新的系统过程。Version Control 系统是高效工作流的基础,是程序员、艺术家和其他团队成员的唯一真相来源,同时允许每个人独立为共享代码库做出贡献。它们还起到安全网的作用,如果开发过程中出现灾难性错误,就有可能“撤消”代码更新。

团队规模和地理分布等因素会影响游戏开发人员可能选择实施哪些 Version Control 系统。个人开发人员可能会发现,本地解决方案是他们保持正轨所需的一切,而较大的团队则应该寻找更强大和可扩展的Version Control系统,帮助他们跨时区和跨地域协作。

Version Control 还支持创建分支的功能。分支是VCS内管理的单个代码副本。通过创建分支,开发人员和其他团队成员可以在单独的流中彼此独立工作。Version Control 帮助开发人员在共享代码库中协作和同步工作。

Version Control 为什么重要?

Version Control系统是DevOps的核心支柱,它允许团队协作并快速迭代项目的源代码。

使用 Version Control 意味着始终有一个备份。单个项目更新在被合并到主源代码之前被定期收集到一个称为“提交”的奇异组中。Version Control 软件对于跟踪每个项目文件的每次修改至关重要。如果出现错误或倒退,用户几乎可以立即返回到该文件的早期版本。Version Control 还提供了所有更改、更改者以及每次更改的迭代的日志。有了 Version Control 系统,所有利益相关者和团队成员可以同时对许多文件进行无缝处理。Version Control 系统允许您将所有代码编辑和更改合并到一个集中存储库中。

Version Control 系统可以访问完整的项目历史记录并能够撤消错误,从而简化了错误跟踪 '%1! 并更容易地恢复以前删除的功能。

集中式Version Control系统
Version Control是如何工作的?

在 Version Control 系统中创建新存储库会打开主分支:这称为主分支或中继主节点。主干主站是主代码库进入管道的地方,然后在这里编译并部署到最终用户。

So what are branches分支 ?分支是从主分支分叉出代码的过程。这允许开发人员对代码进行自己的个人更改,而无需将其提交到主代码。使用分支意味着开发人员不需要在一台服务器上拥有完整的文件历史记录;相反,他们可以维护代码随时间变化的完整历史记录。Version Control 系统可以将这些独立的分支合并回主分支。如果开发人员还没有准备好将他们的任务分支合并到主分支中,他们可以将他们所做的更改提交到一个单独的分支中,并在空闲时将其合并到主分支中。

正确的分支策略对于避免代码冲突和支离破碎的构建至关重要。幸运的是,良好的 Version Control 系统允许团队轻松地与主分支同步并修复任何潜在的代码冲突 — — 即使在代码被提交到主集成分支之后。

分布式版本控制系统,解释了

分布式Version Control系统让您无需连接到主服务器即可签入、分支和合并。每个贡献者从存储在云中的克隆存储库工作。他们的主要优势是,队友可以分开工作,速度,不用担心网络或VPN慢。甚至可以脱机处理项目,但仍然需要互联网连接来推送或拉取更新

如果您曾经需要下载整个项目历史记录,分布式Version Control系统可能会带来很长的等待时间,特别是在有大量更改历史记录的大型项目中。处理大型二进制文件的工作室应仔细监视存储使用情况,因为这些文件会很快占用空间。

寻求灵活性和提高生产力潜力的工作室应考虑分布式 Version Control。

分布式版本控制系统
集中Version Control系统,解释了

集中式 Version Control 系统使用签入/推送工作流连接到主服务器。源代码的任何更改或更新将自动作为新版本存储在存储库中。集中式Version Control系统具有强大的分支和合并功能,不需要将存储库克隆到多台机器上。从这个意义上说,它可能更安全。

集中式Version Control系统需要网络连接。由于团队被绑定到存储在一台服务器上的单个项目版本,服务中断可能导致严重减速。集中式 Version Control 的另一个缺点是扩展性差。您为项目贡献的开发人员越多,在稳定环境中推动更改的机会就越少,这可能导致合并冲突等问题。

如果你对易于设置和使用的Version Control系统感兴趣,可以考虑集中式工作流。

本地Version Control系统,解释了

本地 Version Control 系统是 Version Control 最简单的形式,它们主要由单独开发人员而不是团队使用。通过本地 Version Control,所有项目数据存储在一台计算机上,对项目文件所做的更改以补丁形式存储。每个修补程序仅包含自上一个修补程序以来实施的更新。如果项目的特定版本出现问题,您必须检查整个修补程序集合,以拼凑项目文件在特定时刻的样子,从而诊断问题。

由于本地 Version Control 系统绑定在一台计算机上,因此其灵活性本来就不如分布式和集中式系统。队友之间的协作非常艰巨,如果数据库受损,即使不是不可能,也很难恢复丢失的信息。

一般来说,从本地 Version Control 开始是没问题的,但只要你开始扩大规模(甚至从一人到两人的团队 ) , 最好开始分布式或集中式工作。

Version Control的好处
修改跟踪

轻松跟踪修改并合并整个项目

文件比较

启用文件比较并识别文件之间的差异

故障排除:

由于VCS中记录的更改完全存档,因此易于故障排除

中央存储库

中央存储库允许无缝协作,而不会影响单个性能或代码更改

文件共享

通过与开发人员和利益相关者无缝共享文件来释放空间和时间,而无需不断保存代码调整的副本

分布式开发

分布式开发允许开发人员在方便的地方工作

类似读取
两个人拿着DevOps和Agile文件
Agile vs DevOps

Agile 和 DevOps 的目标相同 — — 通过定期发布时间表交付客户价值 — — 但方法略有不同。看看他们怎么合作

手持灯泡的手
DevOps原则

每个游戏工作室都希望加快制作速度,同时减少压扁,DevOps是实现这一目标的最佳方式。从学习 DevOps 方法背后的关键原则开始。

手拿着哑铃
DevOps 的优势

实施DevOps实践可以简化您的开发管道,让您的团队和用户更快乐。详细了解DevOps如何帮助您。

版本控制系统电子书
Version Control电子书

支持集中式还是分布式工作方式?每种方法都有其优势和劣势 – 在此免费电子书中了解哪种 Version Control 方法最适合您的团队。

塑料SCM标注
游戏开发的Version Control

使用 Unity 的版本控制系统进行分布式和集中式工作。使用基于文件和更改集的工作流程管理大型二进制文件。使用为任何引擎构建的安全版本控制系统存储源代码和资源并跟踪更改。