前文
什么是Git?
官网介绍:
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
Git is easy to learn and has a tiny footprint with lightning fast performance. It outclasses SCM tools like Subversion, CVS, Perforce, and ClearCase with features like cheap local branching, convenient staging areas, and multiple workflows.
理解:
Git是一种版本控制工具(The stupid content tracker, 傻瓜内容跟踪器),简单通俗的说就是方便对程序开发过程中的代码、文件、项目等工程内容记录更改历史。用于查看工程的更改记录,备份共享以及恢复历史版本的工程。
版本控制工具都有哪些?
1. Git( [ɡɪt] n.蠢货;饭桶等)
2. SVN
是Apache Subversion的缩写。
官网介绍:
Enterprise-class centralized version control for the masses
3. CVS
集中式版本控制工具。
是Concurrent Version System的缩写。
是一种C/S体系结构的软件。
发展
管理Linux系统--->windows--->ios
起初,是用来帮助管理Linux内核的开发而开发的。逐渐被运用到Windows操作系统中。后来随着IOS的发展,也有了Mac版本的Git。
SVN
集中式管理工具(必须联网) 开源工具
SVN 的一些概念
- repository(源代码库):统一保存源代码的空间
- Checkout(提取):当你手上没有源代码的时候,你需要从源代码库 checkout一份
- Commit(提交):当你已经修改了代码,你就需要Commit到源代码库
- Update (更新):当你已经Checkout了一份源代码, Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更
什么是集中式版本控制工具
- 集中式版本管理工具,必须联网工作。(带宽是一个问题)
集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。
-
优缺点 - 优点:局域网很方便 - 缺点:服务器单点故障
什么是分布式版本控制工具
- 分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
- 优缺点
- 优点:分布式版本控制系统的安全性高。(每个人电脑里都有完整的版本,如有损坏,可以从其他人那里复制一份)
- 在实际使用时,很少在两人的电脑之间推送版本库的修改更新。因为很少两台电脑在同一个局域网中,两台电脑也互相访问不了。因此,分布式版本控制工具通常有一台充当“中央服务器”的电脑用来方便“交换”修改更新。(这样修改方便些)
Git
分布式版本控制工具
远程仓库 <===> 本地仓库
对比
CVS是最早的开源且免费的集中式版本控制系统,现在也有不少人再用。但由于CVS自身设计的问题,会造成提交文件不完整,版本库莫名损坏的情况。同样是开源且免费的SVN修正了SVN的一些稳定性问题,是目前用的最多的集中式版本控制系统。
相对SVN,Git有:
- 强大的分支管理
- Git是分布式的,每个开发人员都可以将整个项目克隆到自己的本地,在本地做无限制的修改。
- 速度比较快,灵活。
- 可以离线工作。
- 公共服务器的压力和数据量都不会太大。