什么是版本控制?
什么是版本控制?
版本控制是一种系统,可用于跟踪项目文件随时间而产生的更改。对于任何现代软件应用程序或基于代码的项目而言,版本控制都至关重要,例如基础设施即代码部署或定制化机器学习系统。版本控制系统(VCS)提供源代码管理解决方案。VCS 支持同步协作,可与持续集成和持续部署(CI/CD)管道集成,还可加快开发工作。
版本控制有哪些优势?
版本控制(即源代码控制)是所有基于代码的现代项目中不可或缺的组成部分。以下是使用版本控制软件系统的一些优势。
提供完整的项目历史记录
您可以通过版本控制系统来查看项目在任意时间点的状态。例如,您可以回溯查看软件应用程序去年的状态,如有需要,甚至可以部署先前版本的源代码。每个版本均记录了特定用户在特定时间对代码所做的确切更改。
跟踪项目更改
许多版本控制系统都支持并排查看不同版本文件之间的差异。通过跟踪更改,您可以精确定位当前版本与早期版本之间的差异。若新版本出现意外行为,此版本控制功能对于调试尤为有用。
在无代码冲突的情况下开展协作
版本控制系统允许多人或多个软件团队同时处理同一项目,甚至可以同时处理同一文件或同一段源代码。系统负责管理代码冲突的处理方式,尽管有时需要手动解决冲突,但多人协作的成果在大多数协作工作中均可自动合并。结合合并前与合并后的自动化测试,即使存在多处独立更改,您也可以验证项目是否按预期运行。
支持快速回滚
若部署项目新版本后迅速发现了错误,则可回滚到稳定的先前版本,而无需像往常那样继续运行缺陷版本,直至得以修补。这种版本控制系统机制在发布周期较快的现代软件项目中至关重要。
项目分叉功能
有时,一个项目可能有两个不同的发展方向。例如,如果您构建了一个供内部使用的软件应用程序,但您决定将其商业化发布,这样一来,您就会拥有一个自定义的内部版本和一个独立的商业版本。但是,这两个软件应用程序的根代码保持不变,此时就存在两个分叉,内部和外部文件版本各一个。根代码的更改(例如安全补丁和功能更新)会自动同时复制到内部和外部应用程序代码中。
管理多个存储库
版本控制系统支持同时跟踪多个项目,因此,开发人员能够在任意给定时间处理任何项目。
版本控制系统的主要功能有哪些?
市面上的开源和商业版本控制系统品类繁多;但其功能大多类似。
主存储库
主存储库的作用是存储项目代码的稳定版本。主存储库应加以妥善维护,并集成到 DevOps 工具中,例如自动测试和发布。

分支
软件开发人员会创建实验分支来开展开发工作,而不会直接修改主存储库的代码。必要时,多名开发人员可以在同一个分支上协作。分支的名称应体现新工作的目标。
克隆并签出
克隆代码主存储库是指将代码从远程服务器拉取到本地版本控制系统。签出分支是指在本地切换到该分支。
代码拉取
代码拉取是指开发人员从最新版本提交中获取代码,并将其与本地更改合并。如果开发人员在某个分支上工作了一段时间,则必须每隔一段时间从主存储库中拉取一次代码。经常拉取有助于避免日后出现大量代码冲突。同样,如果多个开发人员在同一分支上协作,则必须经常从该分支拉取代码。
代码提交和推送请求
代码提交是指开发人员完成某段代码的开发工作后将其保存的操作。随后,推送请求会将代码更新同步给所有人。例如,如果开发人员添加了一个新的小模块,则可以先在本地提交,然后将更改推送到分支。当分支上的一部分工作完成,经验证、测试并获得批准后,便可以提交代码,并将最终版本推送到主存储库。
合并和冲突解决
在代码提交或拉取请求中,VCS 会尝试将新代码与目标代码合并。此时可能会出现代码冲突,例如,两名或更多用户都在同一段代码上工作时。在这种情况下,VCS 会向用户显示冲突,随后可由开发人员决定如何更改代码。一些现代版本控制软件系统会根据历史记录或最佳实践提出更改建议。
什么是集中式版本控制系统与分布式版本控制系统?
集中式版本控制系统会将整个项目保存在中央存储库系统中,开发人员根据需要签入和签出项目,有时还会使用文件锁定系统。这些集中式系统主要是遗留系统。分布式版本控制系统(例如 Git)允许开发人员将整个项目从远程存储库签出到本地计算机或环境中。分布式 VCS 有助于减少网络流量,开发人员也可以离线工作。
亚马逊云科技如何支持您的版本控制需求?
亚马逊云科技可帮助您构建基础夯实的基于代码的项目,并且在整个软件开发生命周期中支持版本控制系统。
对于一体化 DevOps 环境:
Amazon CodeCatalyst 是一项集成式交钥匙 DevOps 服务,专为在软件开发流程中采用持续集成和部署实践的软件开发团队而设计。CodeCatalyst 提供统一的平台,您可以在其中使用持续集成和持续交付(CI/CD)软件工具来规划工作、协作编写代码以及构建、测试和部署应用程序。
构建自己的 DevOps 环境:
Amazon CodeBuild 通过自动扩展帮助您构建和测试代码,运行构建脚本以编译、测试和打包代码,并与 VCS 集成。
Amazon CodeDeploy 可帮助您在开发、测试和生产环境中实现应用程序自动化,并以一致的方式部署应用程序。
Amazon CodePipeline 可帮助您实现持续交付管道自动化,以实现快速、可靠的更新。使用存储库提交作为管道触发器,您便可快速发布新功能、根据反馈进行迭代并通过测试每项代码更改来发现错误。
立即创建免费账户,开始在亚马逊云科技上创建具有版本控制功能的项目。
Browse all cloud computing concepts
Browse all cloud computing concepts content here:
Did you find what you were looking for today?
Let us know so we can improve the quality of the content on our pages
