前言
该文章只是记录了一些自己的见解,可能并不准确,只是为了学习时的一些记录,不喜勿喷,谢谢
1. Git是什么?
git是一个和svn一样的版本控制软件,但是与svn不同的是,git是一个分布式的高效版本控制系统。其实现原理跟svn也大相径庭,采取了一种以空间换时间的理论,为什么是使用分布式呢,因为git会在每个开发者的本地中都保留了一份仓库副本,即使在断网的时候,也能提交代码到各自的仓库中,等联网后,再提交到中央仓库。每个开发者的仓库都是互相不可见的。
首先我们来了解一些概念和名词
1.1 本地仓库
本地仓库就是用来管理版本库的一些文件组成,里面记录了配置信息,当前状态数据,以及版本记录等数据
1.2 工作空间
开辟本地仓库后,在当前目录中一系列操作都可以看作是对工作空间的操作
1.3 暂存区
类似与windows中粘贴板,对工作空间的修改还没提交到本地仓库时的数据进行一个暂存,可以随时的回退到未修改前的状态
1.4 分支
当在我们本地进行了多次的提交后,形成了一条链路,该链路就叫做分支,当前仓库默认是master分支,也可以使用命令来创建其余分支
2. Git和Svn的区别
这里也是进行百度的,稍微记录下,来自 https://www.cnblogs.com/baby123/p/10411103.html
- svn是集中式的,而git是分布式的,如果svn的中央仓库代码被删除了,那么可能代码真的就找不回来了,而git因为是分布式的,本地都有着所有代码的副本,所以即便中央仓库代码丢失,也可能通过本地代码重新恢复回来。
- svn每次提交记录,都是将提交的数据之间的差异数据进行保存,而git则是对有修改的文件使用另一个新的文件来保存,即使用了更多的资源,但是现在的社会,最不缺的就是空间资源了。
- svn服务器中使用了全局版本号,每次提交都会产生一个唯一的全局id,且是由顺序的。而git则是根据sha1来进行盐值加密算法获取,没有什么先后区分
- 分支管理的不同。svn的开辟新分支,则是将原有的分支的文件全部拷贝一份到新分支中,如果项目比较大,该过程可能会消耗点时间。而git则是通过指针的方式,非常的快速
- 操作的不同。svn中一般提交代码和拉取代码两步骤,而git则有一个暂存区的概念,先add,然后commit。
- 学习曲线的不同。svn相对简单,git学习曲线相对陡峭
3. 为什么要用Git
- 首先git是一个比svn更加优秀的代码管理工具,已经可以说取代了svn,其区别如上
- 目前的很多程序中,都需要有git的支持,可能在使用一款工具时,会先检测是否安装了git,否则必须要求先安装git,可见其活跃度
- 由于github和码云的兴起,拉去代码都是通过git来操作完成