

# OPS05-BP01 使用版本控制
<a name="ops_dev_integ_version_control"></a>

 使用版本控制来跟踪更改和发布。

 许多 AWS 服务都提供版本控制功能。使用 [Git](https://aws.amazon.com/devops/source-control/git/) 等修订或[源代码控制](https://aws.amazon.com/devops/source-control/)系统来管理代码和其它构件，例如基础设施的版本受控的 [AWS CloudFormation](https://aws.amazon.com/cloudformation/) 模板。

 **期望结果：**团队协作编写代码。合并后，代码将保持一致，并且不会丢失任何更改。通过正确的版本控制，可以很容易纠正错误。

 **常见反模式：**
+  您一直在工作站上开发和存储代码。工作站上发生了不可恢复的存储故障，代码丢失了。
+  用更改内容覆盖现有代码后，重新启动应用程序，但其无法运行。您无法撤销所做更改。
+  您对报告文件执行了写入锁定，而其他人需要对此文件进行编辑。他们与您联系要求停止写入锁定，以便他们可以完成自己的任务。
+  研究团队一直在进行详细的分析，以便对未来的工作进行规划。有人不小心把购物单保存在最终报告上了。您无法撤销更改，不得不重新创建报告。

 **建立此最佳实践的好处：**借助版本控制功能，可以轻松地恢复到已知的良好状态和以前的版本，并降低资产丢失的风险。

 **在未建立这种最佳实践的情况下暴露的风险等级：**高 

## 实施指导
<a name="implementation-guidance"></a>

 在版本受控的存储库中维护资产。这让您能够跟踪更改、部署新版本、检测对现有版本的更改，以及恢复到以前的版本（例如在发生故障时回滚到已知的良好状态）。将配置管理系统的版本控制功能集成到程序中。

## 资源
<a name="resources"></a>

 **相关最佳实践：**
+  [OPS05-BP04 使用构建和部署管理系统](ops_dev_integ_build_mgmt_sys.md) 

 **相关视频：**
+ [AWS re:Invent 2023 - How Lockheed Martin builds software faster, powered by DevSecOps ](https://www.youtube.com/watch?v=Q1OSyxYkl5w)
+ [AWS re:Invent 2023 - How GitHub operationalizes AI for team collaboration and productivity ](https://www.youtube.com/watch?v=cOVvGaiusOI)