一. Git 是什么?
Git 是目前世界上最先进的分布式版本控制系统
二. 基础知识
有中心的 SCM(Software Configuration Management)
- 服务端:单数据库
- 客户端:工作目录、状态
无中心的 SCM
- 任何人都可以是服务端
- 工作目录也是仓库
- 操作无需网络连接
三. SVN 与 Git 异同?
相同:
能记录文件的所有更改记录。这样是为了大量更改后,但是最后觉得还是原来的版本代码好,可以有记录回到过去,而不用采用 Copy 旧代码另存为某文件,然后某个时间从大量文件中找你需要的历史记录,版本控制帮我们做到了历史记录的存储,可以方便地查询及回滚到过去的某一版本。
不同:
git和其他版本控制系统(如 CVS)有不少的差别,git本身关心文件的整体性是否有改变,但多数的 CV S或 Subversion 系统则在乎文件内容的差异。因此git更像一个文件系统,直接在本机上获取数据,不必连接到主机端获取数据。
git 是用于Linux内核开发的版本控制工具。与CVS、Subversion(SVN) 一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。git的速度很快,这对于诸如Linux内核这样的大项目来说自然很重要。git最为出色的是它的合并追踪(merge tracing)能力。
SVN 是集中式或者有中心式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。
Git 是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
参考资料: