Version Control
什么是版本控制?
版本控制,也称为源代码管理,使用工具跟踪源代码随时间的变化或编辑。版本控制使开发人员之间能够快速高效地协作,同时保持代码的完整性,使软件开发团队能够在不担心代码冲突的情况下工作。
版本控制,解释
版本控制系统(VCS)允许团队备份和归档其项目的源代码。这使得在发生构建错误时更容易审查和编辑代码库或恢复以前的版本。
版本控制是跟踪和管理源代码及资产更新的系统过程。版本控制系统是高效工作流程的基础,充当程序员、艺术家和其他团队成员的单一真实来源,同时允许每个人独立地为共享代码库做出贡献。它们还充当安全网,使得在开发过程中引入灾难性错误时可以“撤销”代码更新。
团队的规模和地理分布等因素可能会影响游戏开发者选择实施的版本控制系统。个别开发者可能会发现本地解决方案足以保持进度,而较大的团队则应寻找更强大且可扩展的版本控制系统,以帮助他们跨时区和地理位置进行协作。
版本控制还支持创建分支的能力。分支是VCS中管理的代码的单一副本。通过创建分支,开发人员和其他团队成员可以在不同的流中独立工作。版本控制帮助开发人员在共享代码库中协作并保持同步。
为什么版本控制很重要?

版本控制是如何工作的?
在您的版本控制系统中创建一个新存储库会打开主分支:这称为主分支或主干。主干是主代码库进入管道的地方,然后编译并部署到最终用户。
那么,什么是分支?分支是从主分支分叉代码的过程。这允许开发人员对代码进行个人更改,而无需将其提交到主分支。使用分支意味着开发人员不需要在单个服务器上拥有完整的文件历史记录;相反,他们可以维护对其代码随时间变化的完整历史记录。版本控制系统可以将这些独立的分支合并回主分支。如果开发人员还没有准备好将他们的任务分支合并到主分支,他们可以将更改提交到一个单独的分支,并在他们方便时将其合并到主分支。
适当的分支策略对于避免代码冲突和构建失败至关重要。幸运的是,好的版本控制系统允许团队轻松与主分支同步,并修复任何潜在的代码冲突——即使在代码已提交到主集成分支之后。
分布式版本控制系统的解释
分布式版本控制系统让你可以在不连接到主服务器的情况下进行检查、分支和合并。每个贡献者都在存储在云中的克隆仓库中工作。它们的主要优势是团队成员可以独立工作,快速进行,而不必担心慢速网络或VPN。甚至可以在离线状态下进行项目工作,但仍然需要互联网连接来推送或拉取更新。
如果你需要下载整个项目历史记录,分布式版本控制系统可能会有较长的等待时间,特别是在具有广泛更改历史的大型项目中。处理大型二进制文件的工作室应仔细监控存储使用情况,因为这些文件可能会迅速占用空间。
寻求灵活性和提高生产力潜力的工作室应考虑分布式版本控制。

集中式版本控制系统使用检查/推送工作流程连接到主服务器。对源代码的任何更改或更新都会自动作为新版本存储在仓库中。集中式版本控制系统具有强大的分支和合并功能,无需将仓库克隆到多台机器上。从这个意义上说,它可能更安全。
集中式版本控制系统需要网络连接。由于团队依赖于存储在一台服务器上的项目的单一版本,服务中断可能会导致重大延迟。集中式版本控制的另一个缺点是它的扩展性较差。开发人员越多,向稳定环境推送更改的机会就越少,这可能导致合并冲突等问题。
如果您对易于设置和使用的版本控制系统感兴趣,可以考虑集中式工作流程。
集中式版本控制系统使用检查/推送工作流程连接到主服务器。对源代码的任何更改或更新都会自动作为新版本存储在仓库中。集中式版本控制系统具有强大的分支和合并功能,无需将仓库克隆到多台机器上。从这个意义上说,它可能更安全。
集中式版本控制系统需要网络连接。由于团队依赖于存储在一台服务器上的项目的单一版本,服务中断可能会导致重大延迟。集中式版本控制的另一个缺点是它的扩展性较差。开发人员越多,向稳定环境推送更改的机会就越少,这可能导致合并冲突等问题。
如果您对易于设置和使用的版本控制系统感兴趣,可以考虑集中式工作流程。
本地版本控制系统,解释
本地版本控制系统是最简单的版本控制形式,主要由单独的开发人员使用,而不是团队。在本地版本控制中,所有项目数据都存储在一台计算机上,对项目文件所做的更改作为补丁存储。每个补丁仅包含自上一个补丁以来实施的更新。如果您的项目的特定版本出现问题,您必须检查整个补丁集合,以拼凑出项目文件在特定时间点的样子,以诊断问题。
由于它们依赖于一台计算机,本地版本控制系统在灵活性上固有地不如分布式和集中式系统。团队成员之间的协作具有挑战性,如果数据库受到损害,恢复您丢失的信息可能会很困难,甚至不可能。
通常,开始使用本地版本控制是可以的,但一旦您开始扩展(即使是从一个人团队到两个人团队),最好开始使用分布式或集中式工作。
版本控制是如何使用的?
版本控制可用于以下内容:
- 修改跟踪
轻松跟踪修改并在项目中合并
- 文件比较
启用文件比较并识别文件之间的差异
- 故障排除
由于在版本控制系统中记录了完整的更改档案,因此故障排除变得简单
- 中央仓库
中央仓库允许无缝协作,而不会影响个人性能或代码更改
- 文件共享
通过与开发人员和利益相关者无缝共享文件,节省空间和时间,而无需不断保存代码调整的副本
- 分布式开发
分布式开发允许开发人员在方便的时候随时工作