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。 


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

 

转载于:https://www.cnblogs.com/hanyuxinting/p/4601676.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GitSVN是两种常用的版本控制系统,它们有一些重要的区别。 1. 分布式 vs 集中式:Git是一种分布式版本控制系统,每个开发者都拥有完整的代码仓库副本,可以在本地进行提交、分支和合并等操作,不需要依赖服务器。而SVN是一种集中式版本控制系统,开发者需要从中央服务器获取代码并提交更改。 2. 速度:Git通常比SVN更快。因为Git在本地存储了完整的代码仓库,不需要频繁地与服务器通信。而SVN需要与中央服务器进行交互,因此速度相对较慢。 3. 分支和合并:Git具有强大的分支和合并功能,允许开发者轻松创建、切换和合并分支,这使得并行开发和团队协作更加灵活。SVN的分支和合并相对较为复杂,需要手动创建分支,并在合并时可能会出现冲突。 4. 历史记录:Git存储了每次提交的完整快照,可以轻松地查看历史记录,并回滚到任意版本。SVN只存储了每个文件的差异,查看历史记录相对不方便。 5. 分布式开发:由于Git是分布式的,开发者可以在没有网络连接的情况下进行提交、分支和合并等操作。SVN需要与中央服务器通信,因此需要网络连接才能进行开发。 总的来说,Git适用于分布式开发、并行开发和大规模项目,具有更快的速度和强大的分支合并功能。SVN适用于小型项目和集中式开发,对于不熟悉分布式版本控制的团队来说更容易上手。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值