git&svn对比
一、集中版本控制系统svn
下图就是标准的集中式版本控制工具管理方式:
电脑A,电脑B,电脑C都提交代码到中央服务器,且从中央服务器下载,更新代码进行协同开发工作.
集中管理方式在一定程度上看到其他开发人员在干什么,而管理员也可以很轻松掌握每个人的开发权限
但是相较于其优点而言,集中式版本控制工具缺点很明显:
- 服务器单点故障
- 中央服务器一旦宕机,整个开发工作将无法进行下去.
- 容错性差
- 所有数据存储在中央服务器,服务器一旦宕机或者磁盘损坏, 会造成不可估量的损失.
二、分布式版本控制git
分布式版本控制( Distributed Version Control System)与前两者均不同。首先,在分布式版本控制系统中,像 Git,Mercurial,Bazaar 以及 Darcs 等,系统保存的的不是文件变化的差量,而是文件的快照,即把文件的整体复制下来保存,而不关心具体的变化内容。其次,最重要的是分布式版本控制系统是分布式的,当你从中央服务器拷贝下来代码时,你拷贝的是一个完整的版本库,包括历史纪录,提交记录等,这样即使某一台机器宕机也能找到文件的完整备份。
从中央服务器下载拷贝的代码,记录整个文件的提交的过程,每一历史记录,且能和其他代码下载者共享.(也就是说电脑A 和 电脑B中完整的记录了代码历史过程,和中央服务器有同样的效果,且电脑A和电脑B进行代码共享)
这是 Git 同其他系统的重要区别。它完全颠覆了传统版本控制的套路,并对各个环节的
实现方式作了新的设计。Git 更像是个小型的文件系统,但它同时还提供了许多以此为基础
的超强工具,而不只是一个简单的 版本控制工具.
git源码控制工具优点也很明显:
1,本地版本库记录了完整的代码历史版本,脱离中央服务器也可以直接进行提交代码2,git源码控制工具速度非常快,提交,推送等等操作节省CPU的开销.
三、GIT工作流程(对比上图)
①架构师/项目经理搭建项目环境上传到远程中央服务器(上传到远程服务器之前,必须先提交到本地仓库,先添加到暂存态index,然后再 commit)
②程序员B从远程私有仓库克隆(clone)代码,克隆后就可在本地进行修改代码.修改完毕即可把代码推送到远程仓库(推送之前必须先提交到本地仓库)
③程序员C可以更新代码(pull)
四、Git共享版本库
linux版的git私有服务器
linux私有仓库在公司中服务器进行安装,程序员在私钥仓库中进行协同开发远程仓库使用相关操作
pull
clone
push
remote
github互联网版本的源码控制工具(一般不用)
五、Git本地版本库
Eclipse&Egit插件(eclipse图形化界面操作)
Eclipse工具使用相关操作
add to index
commit
Git&windows客户端(主要使用命令操作)
Git命令模式使用相关操作
git add .
git commit –m “commit message