何为版本控制系统
“代码”作为软件研发的核心产物,在整个开发周期都在递增,不断合入新需求以及解决bug的新patch,这就需要有一款系统,能够存储、追踪文件的修改历史,记录多个版本的开发和维护。于是,版本控制系统(VersionControlSystems)应运而生,主要分为两类,集中式和分布式。
集中式版本控制系统
集中式版本控制系统的特点是只有一台中央服务器,存放着所有研发数据,而其它客户端机器上保存的是中央服务器最新版本的文件快照,不包括项目文件的变更历史。所以,每个相关人员工作开始前,都需要从这台中央服务器同步最新版本,才能开始工作。
集中式版本控制系统的优点:
1.操作简单,使用没有难度,可轻松上手。
2.文件夹级权限控制,权限控制粒度小。
3.对客户端配置要求不高,无需存储全套代码。
集中式版本控制系统的缺点:
1.网络环境要求高,相关人员必须联网才能工作。
2.中央服务器的单点故障影响全局,如果服务器宕机,所有人都无法工作。
3.中央服务器在没有备份的情况下,磁盘一旦被损坏,将丢失所有数据。
分布式版本控制系统
分布式版本控制系统的特点是每个客户端都是代码仓库的完整镜像,包括项目文件的变更历史。所有数据分布的存储在每个客户端,不存在中央服务器。可能有人会问,我们公司使用Git分布式存储工具,也有“中央服务器”啊?其实,这个所谓的“中央服务器”仅仅是用来方便管理多人协作,任何一台客户端都可以胜任它的工作,它和所有客户端没有本质区别。
分布式版本控制系统的优点:
1.版本库本地化,版本库的完整克隆,包括标签、分支、版本记录等。
2.支持离线提交,适合跨地域协同开发。
3.分支切换快速高效,创建和销毁分支廉价。
分布式版本控制系统的缺点:
1.学习成本高,不容易上手。
2.只能针对整个仓库创建分支,无法根据目录建立层次性的分支。
SVNvsGit
SVN和Git作为集中式和分布式版本控制系统的代表,都有广大的使用群体,两者的优缺点经常被比较。其实,工具对我们来说,就是帮助我们有效提升工作的效率与质量,最适合的就是最好的。我们引用几个开发场景来看看两个版本控制工具的适用范围。
场景一:
公司A,非纯技术开发,项目包含大量媒体设计文件,相关人员只需下载自己
转载请注明:http://www.0431gb208.com/sjszlff/751.html