Git学习--01 Git与SVN的较量

265 阅读4分钟

前文

什么是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上的源代码同步,你手上的代码就会有最新的变更

什么是集中式版本控制工具

  1. 集中式版本管理工具,必须联网工作。(带宽是一个问题)

集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。

  1. 优缺点 - 优点:局域网很方便 - 缺点:服务器单点故障

什么是分布式版本控制工具

  1. 分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
  2. 优缺点 - 优点:分布式版本控制系统的安全性高。(每个人电脑里都有完整的版本,如有损坏,可以从其他人那里复制一份) - 在实际使用时,很少在两人的电脑之间推送版本库的修改更新。因为很少两台电脑在同一个局域网中,两台电脑也互相访问不了。因此,分布式版本控制工具通常有一台充当“中央服务器”的电脑用来方便“交换”修改更新。(这样修改方便些)

Git

分布式版本控制工具

远程仓库 <===> 本地仓库

对比

CVS是最早的开源且免费的集中式版本控制系统,现在也有不少人再用。但由于CVS自身设计的问题,会造成提交文件不完整,版本库莫名损坏的情况。同样是开源且免费的SVN修正了SVN的一些稳定性问题,是目前用的最多的集中式版本控制系统。

相对SVN,Git有:

  1. 强大的分支管理
  2. Git是分布式的,每个开发人员都可以将整个项目克隆到自己的本地,在本地做无限制的修改。
  3. 速度比较快,灵活。
  4. 可以离线工作。
  5. 公共服务器的压力和数据量都不会太大。