git与svn的不同
假设你在读这篇文章,说明你跟大多数开发人员一样对GIT感兴趣,假设你还没有机会来试一试GIT,我想如今你就要了解它了。
GIT不不过个版本号控制系统,它也是个内容管理系统(CMS),工作管理系统等。假设你是一个具有使用SVN背景的人,你须要做一定的思想转换,来适应GIT提供的一些概念和特征。所以,这篇文章的主要目的就是通过介绍GIT能做什么、它和SVN在深层次上到底有什么不同来帮助你认识它。
1.GIT是分布式的,SVN不是:
这是GIT和其他非分布式的版本号控制系统,比如SVN,CVS等,最核心的差别。假设你能理解这个概念,那么你就已经上手一半了。须要做一点声明,GIT并非眼下第一个或唯一的分布式版本号控制系统。另一些系统,比如Bitkeeper, Mercurial等,也是执行在分布式模式上的。但GIT在这方面做的更好,并且有很多其他强大的功能特征。
GIT跟SVN一样有自己的集中式版本号库或server。但,GIT更倾向于被使用于分布式模式,也就是每一个开发者从中心版本号库/server上chect out代码后会在自己的机器上克隆一个自己的版本号库。可以这样说,假设你被困在一个不能连接网络的地方时,就像在飞机上,地下室,电梯里等,你仍然可以提 交文件,查看历史版本号记录,创建项目分支,等。对一些人来说,这好像没多大用处,但当你突然遇到没有网络的环境时,这个将解决你的大麻烦。
相同,这种分布式的操作模式对于开源软件社区的开发来说也是个巨大的恩赐,你不必再像曾经那样做出补丁包,通过email方式发送出去,你仅仅须要创建一个分支,向项目团队发送一个推请求。这能让你的代码保持最新,并且不会在传输过程中丢失。GitHub.com就是一个这种优秀案例。
有些谣言传出来说subversion将来的版本号也会基于分布式模式。但至少眼下还看不出来。
2.GIT把内容按元数据方式存储,而SVN是按文件:
全部的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。假设你把.git文件夹的 体积大小跟.svn比較,你会发现它们差距非常大。由于,.git文件夹是处于你的机器上的一个克隆版的版本号库,它拥有中心版本号库上全部的东西,比如标签,分 支,版本号记录等。
3.GIT分支和SVN的分支不同:
分支在SVN中一点不特别,就是版本号库中的另外的一个文件夹。假设你想知道是否合并了一个分支,你须要手工执行像这种命令svn
propget svn:mergeinfo,来确认代码是否被合并。感谢Ben同学指出这个特征。所以,常常会发生有些分支被遗漏的情况。
然而,处理GIT的分支却是相当的简单和有趣。你能够从同一个工作文件夹下高速的在几个分支间切换。你非常easy发现未被合并的分支,你能简单而快捷的合并这些文件。

4.GIT没有一个全局的版本,而SVN有:
眼下为止这是跟SVN相比GIT缺少的最大的一个特征。你也知道,SVN的版本实际是不论什么一个相应时间的源代 码快照。我觉得它是从CVS进化到SVN的最大的一个突破。由于GIT和SVN从概念上就不同,我不知道GIT里是什么特征与之相应。假设你有不论什么的线 索,请在评论里奉献出来与大家共享。
更新:有些读者指出,我们能够使用GIT的SHA-1来唯一的标识一个代码快照。这个并不能全然的取代SVN里easy阅读的数字版本。但,用途应该是同样的。
5.GIT的内容完整性要优于SVN:
GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时减少对版本号库的破坏。这里有一个非常好的关于GIT内容完整性的讨论
–http://stackoverflow.com/questions/964331/git-file-integrity
git与svn的不同的更多相关文章
- GIT和SVN之间的区别及基本操作对比
1)GIT是分布式的,SVN不是: 这是GIT和其它非分布式的版本控制系统,例如 SVN,CVS等,最核心的区别.如果你能理解这个概念,那么你就已经上手一半了.需要做一点声明,GIT并不是目前第一个或 ...
- GIT和SVN之间的五个基本区别
GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等.如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征.所以,这篇文章的主要目的就是 ...
- iOS开发——源代码管理——git(分布式版本控制和集中式版本控制对比,git和SVN对比,git常用指令,搭建GitHub远程仓库,搭建oschina远程仓库 )
一.git简介 什么是git? git是一款开源的分布式版本控制工具 在世界上所有的分布式版本控制工具中,git是最快.最简单.最流行的 git的起源 作者是Linux之父:Linus Bened ...
- GIT与SVN的区别
1.GIT是分布式的,SVN不是: 这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别.如果你能理解这个概念,那么你就已经上手一半了.需要做一点声明,GIT并不是目前第一个或唯 ...
- 蒋鑫:为什么 Git 比 SVN 好
在版本控制系统的选型上,是选择Git还是SVN? 对于开源项目来说这不算问题.使用Git极大地提高了开发效率.扩大了开源项目的参与度. 增强了版本控制系统的安全性,选择Git早已是大势所趋. 但对于企 ...
- git vs svn
http://www.tuicool.com/articles/e2MnAb Git与SVN的不同之处 svn为集中化的版本控制,svn获取最新的版本或者提交更新,历史记录等信息每次都要连接中央版本库 ...
- [git/svn]Git和SVN差异
转自:http://blog.csdn.net/huacuilaifa/article/details/19124635 在参加百度的开源项目时接触到Git,后来又陆续在微博上看到很多宣扬Git为程序 ...
- git和svn的区别001
Git和SVN之间的五个基本区别 中文原文地址:http://blog.jobbole.com/31444/ 友情链接git和svn链接2:http://blog.csdn.net/sunboy_20 ...
- git 和 svn的区别(转)
英文原文:5 Fundamental differences between GIT & SVN,编译:外刊IT评论 如果你在读这篇文章,说明你跟大多数开发者一样对GIT感兴趣,如果你还没有机 ...
- git与svn的区别-小结一下
1)Git是分布式的,SVN不是: 这 是GIT和其它非分布式的版本控制系 统,例如SVN,CVS等,最核心的区别.好处是跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上,一段时间后再提交.合并 ...
随机推荐
- 【Android工具类】验证码倒计时帮助类CountDownButtonHelper的实现
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 我们在做有关短信验证码功能的时候.为了防止用户无休止的获取短信验证码,或者是误操作.造成验证码混乱的情况.我 ...
- 实现span设置宽度(行内元素本来不支持调宽度高度这些样式)(变成行内块元素:display:inline-block;)
实现span设置宽度(行内元素本来不支持调宽度高度这些样式)(变成行内块元素:display:inline-block;) 一.总结 1.将span从行内元素变成行内快元素就可以调了: 设置样式的时候 ...
- thinkphp事务机制
thinkphp事务机制 一.总结 下面文章也要看,下面有抛出异常(自己提供错误信息那种) 1.事务机制(原子性):所有的事情都完成了就提交,否则回滚.电商里面用的多,付钱买东西的时候. 2.样例(简 ...
- xmppframework开发基础
xmppframework是XMPP协议的一个objective-c实现. 要了解xmppframework, 从这里開始吧:https://github.com/robbiehanson/XMPPF ...
- ZOJ 1076 Gene Assembly LIS
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=76 题目大意: 题目前面都是废话. 给你一串基因,然后给你上面的外显子的起始和终 ...
- minizlib
ZLIB开源库采用的是DEFLATE压缩算法,已经不支持加密功能,实际上功能还存在于代码中,采用MINIZIP可以支持对ZIP文件的加解密. ZLIB目前最新的是1.2.7,MINIZIP最新的版本是 ...
- Nginx+ 多个Memcached+ 多个Tomcat集群配置来实现 sticky Session
假如有 大于2 台的Tomcat servers,如何实现sticky session特点的高可靠web 服务? 方案设计: 前端使用nginx(最好是淘宝的 tengine)作为we 流量分发器,向 ...
- 【MySQL】15个有用的MySQL/MariaDB性能调整和优化技巧
MySQL 是一个强大的开源关系数据库管理系统(简称 RDBMS).它发布于 1995 年(20年前).它采用结构化查询语言(SQL),这可能是数据库内容管理中最流行的选择.最新的 MySQL 版本是 ...
- POI操作Excel常用方法总结 分类: B1_JAVA 2013-08-23 10:01 349人阅读 评论(0) 收藏
转载自:http://blog.csdn.net/xjun15/article/details/5805429 一. POI简介 Apache POI是Apache ...
- Python 标准库和第三方库的安装位置、Python 第三方库安装的各种问题及解决
首先使用 sys 下的 path 变量查看所有的 python 路径: import sys sys.path 标准库 lib 目录下(home 目录/pythonXX.XX/lib) 第三方库 在 ...