目录
全文概要
**版本控制系统:**记录文件变化,以便将来查阅特定版本修订情况的系统。
**版本控制系统的分类:**本地、集中式、分布式。
集中式:服务器记录文件的所有更新记录,而客户端只保留最新的文件版本。代表是 SVN。
分布式:服务器记录文件的所有更新记录,而客户端是服务器的完整备份。代表是 GIt。
**Git概念:**开源分布式版本控制系统
Git文件划分:
对于文件可以分成 未跟踪、已跟踪,前者指尚未添加到 Git仓库 中进行管理,后者则是已经添加到 Git仓库 中进行挂你了。
**Git仓库区域与文件:**Git仓库中管理的文件可以分成 已修改、已暂存和已提交。
Git与SVN的对比:
SVN是集中控制版本,并且每次记录文件的差异,可以节约磁盘空间,但是切换版本耗时。
Git是分布式版本控制,并且每次记录完整文件,可以提升切换版本效率,但是占据磁盘空间。
版本控制工具介绍
版本控制系统的概念
概念:
版本控制软件是一个用来记录文件变化,以便将来查阅特定版本修订情况的系统,因此有时也叫做“版本控制系统”。
通俗的理解:
把手工管理文件版本的方式,改为由软件管理文件的版本。
这个负责管理文件版本的软件,叫做“版本控制软件”。
使用版本控制软件的好处:
操作简便:只需识记几组简单的终端命令,即可快速上手常见的版本控制软件
易于对比:
基于版本控制软件提供的功能,能够方便地比较文件的变化细节,从而查找出导致问题的原因
易于回溯:
可以将选定的文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态
不易丢失:在版本控制软件中,被用户误删除的文件,可以轻松的恢复回来
协作方便:基于版本控制软件提供的分支功能,可以轻松实现多人协作开发时的代码合并操作
版本控制系统的历史
- 版本控制的史前时代(没有版本控制):
人们通常通过文件备份的方式来进行管理,再通过diff命令来对比两个文件的差异;
- CVS(Concurrent Versions System)
第一个被大规模使用的版本控制工具,诞生于1985年; 由荷兰阿姆斯特丹VU大学的Dick Grune教授实现的,也算是SVN的前身(SVN的出现就是为了取代CVS的)。
- SVN(Subversion)
因其命令行工具名为svn因此通常被简称为SVN; SVN由CollabNet公司于2000年资助并发起开发,目的是取代CVS,对CVS进行了很多的优化; SVN和CVS一样,也属于集中式版本控制工具; SVN在早期公司开发中使用率非常高,但是目前已经被Git取代;
- Git(Linus的作品)
早期的时候,Linux社区使用的是BitKeeper来进行版本控制; 但是因为一些原因,BitKeeper想要收回对Linux社区的免费授权; 于是Linus用了大概一周的时间,开发了Git用来取代BitKeeper; Linus完成了Git的核心设计,在之后Linus功成身退,