什么是版本控制系统?

版本控制系统 (VCS) 对于跟踪和管理源代码的更改至关重要。在下面了解分布式、集中式和本地版本控制系统的要点。

版本控制系统

版本控制是跟踪和管理源代码和资源更新的系统流程。版本控制系统是高效工作流程的基础,作为程序员、美术师和其他团队成员的单一真实来源,让每个人都能独立地为共享代码库做出贡献。此外,还作为安全网,如果在开发过程中引入灾难性错误,可以“撤消”代码更新。

团队规模和地理分布等因素会影响游戏开发者选择实施哪些版本控制系统。独立开发者可能会发现只需要本地解决方案就可以正常运行,而大型团队应该寻找更可靠和可扩展的版本控制系统,以帮助他们跨时区和跨地域进行协作。

为什么使用版本控制系统?

版本控制系统是 DevOps 的核心支柱,让团队可以协作和快速迭代项目的源代码。

使用版本控制意味着始终拥有备份。各项目更新定期收集到一个单独的组中,称为“提交”,然后合并到主源代码中。如果某个更新导致错误,可以将项目恢复到以前的版本并检查提交以诊断问题。

通过访问完整的项目历史记录和撤消错误的功能,版本控制系统简化了错误跟踪并且更容易恢复以前删除的功能。

集中式版本控制系统

分布式版本控制系统

通过分布式版本控制系统,无需连接到主服务器即可签入、分支和合并。每个贡献者都从存储在云中的克隆代码仓库工作。其主要优势是团队成员可以快速独立地工作,而不必担心网络或 VPN 速度慢。甚至可以离线处理项目,但仍然需要互联网连接来推送或拉取更新。

如果需要下载整个项目历史记录,尤其是在具有大量更改历史记录的大型项目中,分布式版本控制系统可能需要很长时间。处理大型二进制文件的工作室应仔细监控存储使用情况,因为这些文件占用空间的速度很快。

寻求灵活性和提高生产潜力的工作室应该考虑分布式版本控制。

本地版本控制系统

本地版本控制系统是最简单的版本控制形式,主要由单独的开发者而不是团队使用。通过本地版本控制,所有项目数据都存储在单个计算机上,对项目文件所做的更改存储为补丁。每个补丁仅包含自上一个补丁以来实施的更新。如果项目的特定版本出现问题,必须检查整个补丁集将项目文件凑在一起,从而了解项目在特定时刻的状态并且诊断问题。

因为它们都在一台计算机上,本地版本控制系统本质上不如分布式和集中式版本控制系统灵活。团队成员之间的协作具有挑战性,如果数据库遭到破坏,即使不是不可能,也很难恢复丢失的信息。

一般来说,开始时可以采用本地版本控制,但是一旦开始扩大规模(即使是从一个人扩展为两个人的团队),最好采用分布式或集中式版本控制。

分布式版本控制系统

集中式版本控制系统

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

集中式版本控制系统需要网络连接。因为团队处理的是存储在一个服务器上的单个项目版本,所以服务中断会严重影响开发速度。集中式版本控制的另一个缺点是扩展性很差。参与项目的开发者越多,在稳定环境中推送更改的机会就越少,这可能导致合并冲突等问题。

如果对易于设置和使用的版本控制系统感兴趣,可以考虑集中式工作流程。

本地版本控制系统

本地版本控制系统是最简单的版本控制形式,主要由单独的开发者而不是团队使用。通过本地版本控制,所有项目数据都存储在单个计算机上,对项目文件所做的更改存储为补丁。每个补丁仅包含自上一个补丁以来实施的更新。如果项目的特定版本出现问题,必须检查整个补丁集将项目文件凑在一起,从而了解项目在特定时刻的状态并且诊断问题。

因为它们都在一台计算机上,本地版本控制系统本质上不如分布式和集中式版本控制系统灵活。团队成员之间的协作具有挑战性,如果数据库遭到破坏,即使不是不可能,也很难恢复丢失的信息。

一般来说,开始时可以采用本地版本控制,但是一旦开始扩大规模(即使是从一个人扩展为两个人的团队),最好采用分布式或集中式版本控制。

Benefits of version control

Modification Tracking

Easily track modifications and merge across the project

File Comparison

Enables file comparison and identifies the differences between files

Troubleshooting

Easy troubleshooting due to the full archive of changes recorded within the VCS

Central Repository

The central repository allows seamless collaboration without impacting individual performance or code changes

File Sharing

Free up space and time by seamlessly sharing files with developers and stakeholders without having to constantly save copies of code adjustments

Distributed Development

Distributed development allows developers to work anywhere at their convenience

类似读物

探索更多资源,了解版本控制系统和其他 DevOps 工具和流程。

敏捷与 DevOps

敏捷和 DevOps 具有相同的目标 – 通过定期发布时间表来交付客户价值 –  但它们采用的方法略有不同。了解它们如何一起发挥作用。

DevOps 原则

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

DevOps 的优势

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

Version Control e-Book

Should you work centralized or distributed? Each has its advantages and disadvantages – learn which approach to version control will work best for your team in this free e-book.

游戏开发的版本控制

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

我们使用 Cookie 来确保为您提供网站的最佳体验。有关更多信息,请访问我们的 Cookie 政策页面

明白了