版本控制
版本控制系统(Version Control System,VCS)是用于跟踪和管理源代码和文档的工具。可追踪和管理修改历史,包括修改的内容、时间、作者等信息。有助于团队协作、追踪变更、恢复历史版本等。VCS的主要目的是帮助团队协作开发,提供有效的版本管理和协调工作流程。软件配置管理(Software Configuration Management,SCM)是更广泛的实践,它涵盖软件开发生命周期中管理软件配置的过程。SCM包括版本控制、构建和发布管理、问题跟踪、变更管理等。
VCS控制方式
- 集中式 - 集中在服务器,客户端克隆并签出源代码,每个提交更新都直接推送到服务器
- 分布式 - 克隆和检出源代码的每台机器都将充当存储库,可离线提交到本地,最后再推送到服务器
VCS作用
版本控制系统是重要的开发工具,帮助开发者追踪、管理和协作代码的修改,提高团队协作效率,保护代码安全性和可靠性,提供灵活的开发和发布流程。
- 追踪和管理修改历史:版本控制系统记录每次对代码或文件的修改,可查看每次修改的目的和细节,能够查看不同版本差异。
- 并行开发和协作:版本控制系统允许多人同时对同一文件进行修改,提高团队协作效率,能够轻松进行代码审查和合并操作。
- 回滚和恢复:版本控制系统允许回滚到之前的某个版本,对于修复错误、撤销不必要的修改或回退到稳定版本非常有用。
- 分支管理和特性开发:版本控制系统提供分支管理,创建新分支来开发新特性、修复错误或进行实验性的工作,然后合并到主分支,有效地组织和管理代码库的不同功能和版本。
- 备份和数据保护:版本控制系统作为中央存储库,通过备份防止数据丢失,提供权限管理和访问控制,保护代码文件的机密性和完整性。
VCS工具
当前的版本控制软件主要有SVN、Git等。
- SVN(Subversion):是集中式版本控制系统。SVN可靠安全,易于设置和使用。文件保存在中央存储库,是最常用的集中式VCS,比分布式VCS稍慢一点。官网地址:https://subversion.apache.org/
- Git:是分布式版本控制系统。Git速度快、强大且灵活,能够处理大型项目和大量文件。有丰富的分支管理功能,使得团队合作和并行开发更加容易。官网地址:https://www.git-scm.com/
- Mercurial: 是分布式版本控制系统。Mercurial分支管理不灵活,推荐用Git。官网地址:https://www.mercurial-scm.org/
- CVS(Concurrent Versions System):老旧的集中式版本控制系统,目前使用较少。
- VSS(Visual SourceSafe):老旧的集中式版本控制系统,由微软开发,目前使用较少。它用文件锁定机制防止多人同时修改同一个文件,以避免冲突。
分支管理
- DEV(Development environment):持续集成开发环境
- SIT(System Integrate Test Environment):系统集成测试环境
- UAT(User Acceptance Test environment):用户验收测试环境
- PROD(Production environment):生产环境
软件版本号
数字版本号:<主版本号>.<次版本号>.<修订版本号>,如 1.0.0
版本阶段:
通用版本命名:主版本号.子版本号.修订版本号.日期_版本阶段 如,V1.2.3.20231228_rc