目录
1. 版本控制软件的基础功能
2. 集中式版本控制
3. 分布式版本控制
git 是分布式管理控制工具,用来管理开发项目中的资源:
这样的软件在项目管理开发中称为 SCM(Software Configuration Management) 软件;
下面是版本控制到分布式版本控制的发展趋势;
1. 版本控制软件的基础功能
1. 保存和管理文件
2. 提供客户端工具进行访问
3. 提供不同版本文件的比对功能
但是以上功能在实际开发中远远不够用,于是就产生了集中式版本控制;
2. 集中式版本控制
集中式版本控制就是将项目中的文档集中放在一个仓库中,称之为资源库;需要资料时从资源库下载,修改更新后再上传到资源库,可以用于多人协作提高工作效率;
但是,以上多人协作开发涉及到文件冲突:
比如,张三从资源库下载文档到本地,修改更新后再上传到资源库,原先的文档被覆盖;
李四从资源库下载文档到本地,下载的是被覆盖后的“张三的文档”,更新修改后张三的文档被覆盖;
王五从资源库下载被覆盖的“李四”文档到本地,修改更新后李四的文档被覆盖;
由此可以看出,多人处理同一份文档,必须某一个人处理完之后,其他人才能够处理,效率较低;
因此,在实际生产中,约定同一份文档的第一部分由一个人去做,第二部分由另一个人去做,以此类推,提交时比对文档内容,进行合并即可;
但是,以上集中式版本控制都有一个通病,如果服务器崩溃或者网络出现问题,那就不能下载或上传文档,容易造成文档丢失,这就产生了分布式版本控制;
3. 分布式版本控制
在本地搭建一模一样的资源库,在本地的资源库进行下载和上传,最后与中央服务器同步数据;
但是,在本地搭建资源库会占据本地的资源;如果网络不够好,资源库的同步较慢;好处就是数据会更加的安全,数据在本地的下载和上传的速度更快;
git 的操作原理与其相同,都是分布式版本控制;