毕业论文
您现在的位置: 版本控制 >> 版本控制资源 >> 正文 >> 正文

Git最全总结全篇

来源:版本控制 时间:2022/8/9
北京白癜风治疗方法 http://m.39.net/pf/bdfyy/

Git与SVN的主要区别

Svn是集中式的版本控制系统,而git是分布式的

集中式就存在单点故障风险,一旦SVN的远程仓库挂掉了,那我的本地项目再也不能做提交,也不能做分支的切换,也不能够干和版本管理相关的任何事情。更极端一点,如果svn的服务器磁盘故障,虽然我们可能利用某些员工本地的快照版本尽可能恢复工程,但是当我们把这个相对完整的版本重新部署到服务器的新仓库时,将会丢失所有的历史版本包括日志。

git是分布式的,表示我们每个人的本地项目都包含一个完整Git仓库。这一点一定要牢记,本地也是一个仓库。

.svn只是简单的保存一些版本信息,但是如果你把.git目录的体积大小跟.svn比较,你会发现它们差距很大。因为.git目录是处于你的机器上的一个克隆版的版本库,并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来,包括完整的历史记录。

基本工作原理的不同

这部分最关键,请耐心看完。理解git的思想,而不是单纯的会使用几个命令。知其然,更要知其所以然。

SVN是记录每个文件每个版本的差异变化,可以说是基于文件差异的版本控制

如图,svn是存储每个文件在版本的不断迭代中产生的差异。

git不一样。如下图所示,git在你每次提交时,都会对所有文件产出一个快照。当然,如果文件没有修改,本次的快照只是生成一个链接,指向之前的文件,不会再copy一份文件。这和docker的分层镜像有点相似。

对比两张图,git倾向于纵向切分,每一个版本是一个清晰独立的版本。而svn的每一个版本,需要在前一个版本的基础上追加差异才能得到。

代码提交方式

svn相对来说更容易上手,更新代码--开发代码--提交代码

转载请注明:http://www.0431gb208.com/sjslczl/1261.html