Git和SVN区别

听说要用Git了,先了解下。

听说习惯用SVN的,需要好好转换下,才能理解Git。

听说Git不仅仅是版本控制系统,它还内容管理、工作管理啥的。

这篇文章先了解下。。

1.GIT是分布式的,SVN、CVS啥的不是~

1)GIT也有集中式版本库,但是更倾向于分布式。 即开发者从中心版本库check out下代码后,会在本地自己机器上克隆一个自己的版本库。

这样,你就可以在一个没有网络的环境里,提交代码,创建分支等。非常便利。

2)对于开源项目,而只需创建一个分支,向项目团队发送推请求。

这样,可保持你的代码是最新,而且不会在传输中把代码丢失。

最重要的是,不用再找开源管理的童鞋做一系列的操作~非常便利。

2. GIT是按元数据存储,而SVN是按文件。

所有的资源控制系统都是把文件的元信息隐藏在一个类似的.svn,.cvs这样的文件夹中。

.git目录是在你机器上的一个克隆版的版本库,拥有中心版本库上所有的东西,如标签、分支、版本记录等。

3. GIT分支和SVN分支不同

在使用SVN时,建立分支和合并分支有时候比较痛苦,特别是合并主干,如果新建立的项目还好,但是如果在一个老的项目上开发新东西,合并就很头疼。。

总之,用分支用的就比较少,特别是后来做的项目都很单一,或者锁版本这种,这个几乎也很少用了。

如果是否合并了一个分支,命令行:svn propget svn:mergeinfo,来确认代码是否被合并。

GIT分支很简单。 可以从同一个工作目录下快速的在几个分支间切换。

也很容易发现未被合并的分支,简单快捷的合并这些文件。

4.  GIT没有一个全局的版本号,SVN有。

SVN的版本号实际上是任何一个相应时间的源代码快照。

GIT可以用SHA-1来唯一标识一个代码快照。但不方便吧?

5. GIT的内容完整性要优于SVN。

GIT的内容存储使用的SHA-1算法。能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

我觉得下边的内容更有意思~

6. 速度:

克隆一份全新目录,比如说五个分支的。SVN需要同时复制5个版本的文件。很慢,深有体会。

GIT只获取文件的每个版本的元素,然后载入主要的分支(master)。

所以GIT的速度远远快于SVN。

7. 版本库(repository):

SVN只能有一个指定的中央版本库。一旦中央版本库有问题,所有人都会瘫痪,并只能等待版本库修复ok。

GIT有无限个版本库。每一个GIT都是一个版本库,区别在于他们是否有活跃目录(Git Working Tree)。 如果主要版本库有问题,其他人还可以在自己的本地版本库提交,等待主版本库修复。也可以提交到其他的版本库。

8. 分支(Branch):

9.提交(Commit)

SVN中提交,直接影响中央版本库。

GIT的提交,属于本地版本库的活动。 只需要“推”git push 到主要版本库即可。GIT的推,其实是执行同步。

10.重新设立起点(Rebase):

GIT中,git rebase branch_name,即可把别人最新提交的代码设立为现在分支的起点。

merge会依据修改的时间视为最新,而rebase要求解决双方都有修改过的地方的矛盾。

11. 系统档案:

SVN的每个目录下都有.svn。移除也很麻烦。

GIT会在目录起点有一个.git目录,以及.gitignore。

搞完这些,突然觉得可以用下新东西了,虽然也不新了。。。

时间: 2024-10-16 09:52:40

Git和SVN区别的相关文章

Git 与 SVN 区别

Git 与 SVN 区别 1.GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别. 2.GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文 件夹里. 3.GIT分支和SVN的分支不同:分支在SVN中一点不特别,就是版本库中的另外的一个目录. 4.GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征. 5.GIT的内容完整性要优于SVN

Git 入门 ---- Git 与 SVN 区别

一. Git 是什么? Git 是目前世界上最先进的分布式版本控制系统 二. 基础知识 有中心的 SCM(Software Configuration Management) 服务端:单数据库 客户端:工作目录.状态 无中心的 SCM 任何人都可以是服务端 工作目录也是仓库 操作无需网络连接 三. SVN 与 Git 异同? 相同: 能记录文件的所有更改记录.这样是为了大量更改后,但是最后觉得还是原来的版本代码好,可以有记录回到过去,而不用采用 Copy 旧代码另存为某文件,然后某个时间从大量文

Git和Svn区别及安装

Git是分布式管理,Svn是集成式管理. 集成式: 集成式,通俗的说就是开发时由一个人进行统一管理. 分为两个部分,一个中央服务器(管理者),其余就是本地开发者.如果本地开发者A需要本地开发者B的开发代码,那么只能通过下载 本地开发者B最新一次提交给 中央服务器 的开发代码.也就意味着如果开发者之间的交流必须通过中央服务器,且只有中央服务器才有版本控制库,才能更改成以前版本代码. 问题:如果在本地不小心删除一个文件,那么必须重新获取中央服务器的以前版本的文件. 分布式: 每个人都有一个版本库,每

Git简史及对比SVN区别

Git 简史 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件. Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持. Git 与 SVN 区别 GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等. 如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应

【转】GIT和SVN之间的五个基本区别

如果你在读这篇文章,说明你跟大多数开发者一样对GIT感兴趣,如果你还没有机会来试一试GIT,我想现在你就要了解它了. GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等.如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征.所以,这篇文章的主要目的就是通过介绍GIT能做什么.它和SVN在深层次上究竟有什么不同来帮助你认识它. 那好,这就开始吧- 1.GIT是分布式的,SVN不是: 这是GIT和其它非分布式的版本控制系统,例如SVN

Git和SVN的区别,哪个好?

1) 最核心的区别Git是分布式的,而Svn不是分布的.能理解这点,上手会很容易,声明一点Git并不是目前唯一的分布式版本控制系统,还有比如Mercurial等,所以说它们差不许多.话说回来Git跟Svn一样有自己的集中式版本库和Server端,但Git更倾向于分布式开发,因为每一个开发人员的电脑上都有一个Local Repository,所以即使没有网络也一样可以Commit,查看历史版本记录,创建项 目分支等操作,等网络再次连接上Push到Server端. 从上面看GIt真的很棒,但是GIt

GIT和SVN之间的五个基本区别

GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等.如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征.所以,这篇文章的主要目的就是通过介绍GIT能做什么.它和SVN在深层次上究竟有什么不同来帮助你认识它. 那好,这就开始吧… 1.GIT是分布式的,SVN不是: 这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别.如果你能理解这个概念,那么你就已经上手一半了.需要做一点声明,GIT并不是目前第一个或唯一的

Git 和 SVN 之间的五个基本区别

GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等.如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征.所以,这篇文章的主要目的就是通过介绍GIT能做什么.它和SVN在深层次上究竟有什么不同来帮助你认识它. 那好,这就开始吧… 1.GIT是分布式的,SVN不是: 这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别.如果你能理解这个概念,那么你就已经上手一半了.需要做一点声明,GIT并不是目前第一个或唯一的

git与svn的区别-小结一下

1)Git是分布式的,SVN不是: 这 是GIT和其它非分布式的版本控制系 统,例如SVN,CVS等,最核心的区别.好处是跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上,一段时间后再提交.合并,也可以不用联网在本地提交:GIT并不是目前第一个或唯一的分布式版本控制系统.还有一些系统,例如Bitkeeper, Mercurial等,也是运行在分布式模式上的.但GIT在这方面做的更好,而且有更多强大的功能特征. GIT跟SVN一样有自己的 集中式版本库或服务器.但,GIT更倾向于被使用于分布