Git和SVN的区别

Git和SVN的区别Git:是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是LinusTorvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。SVN:是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。1.集中式vs分布式Subversion属于集中式的版本控制系统Git属于分布式的版本控制系统2.版本库与工作区SVN的版本库和工作区是..

Git: 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

SVN: 是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。

1. 集中式vs分布式

Subversion属于集中式的版本控制系统

Git属于分布式的版本控制系统

2. 版本库与工作区

SVN的版本库和工作区是分离的

Git 的版本库和工作区如影随形

3. 全局版本号和全球版本号

SVN的全局版本号和CVS的每个文件都独立维护一套版本号相比,是一个非常大的进步。在看似简单的全局版本号的背后,是Subversion提供对于事物处理的支持,每一个事物处理(即一次提交)都具有整个版本库全局唯一的版本号。

Git的版本号则更进一步,版本号是全球唯一的。Git 对于每一次提交,通过对文件的内容或目录的结构计算出一个SHA-1 哈希值,得到一个40位的十六进制字符串,Git将此字符串作为版本号

4. 部分检出和全局检出

Subversion可以将整个库检出到工作区,也可以将某个目录检出到工作区。对于要使用一个庞大、臃肿的版本库的用户来说,部分检出是非常方便和实际的。
但是Git只能全部检出,不支持按照目录进行的部分检出。

5. 更新和提交

在SVN中,因为只有一个中心仓库,所以所谓的远程更新,也就是svn update ,通过此命令来使工作区和版本库保持同步。如果不能连接到服务器上,基本上不可以工作。
对于git来说,别人的改动是存在于远程仓库上的,所以git checkout命令尽管在某些功能上和svn中的update类似(例如取仓库特定版本的内容),但是在远程更新这一点上,还是不同的,不属于git checkout的功能涵盖范围。 Git使用git fetch和git pull来完成远程更新任务,fetch操作只是将远程数据库的object拷贝到本地,然后更新remotes head的refs,git pull 的操作则是在git fetch的基础上对当前分支外加merge操作。可离线工作。

………

10. 优缺点比较

SVN优缺点

优点: 

1、 管理方便,逻辑明确,符合一般人思维习惯。 

2、 易于管理,集中式服务器更能保证安全性。 

3、 代码一致性非常高。 

4、 适合开发人数不多的项目开发。 

缺点: 

1、 服务器压力太大,数据库容量暴增。 

2、 如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,就不能提交,还原,对比等等。 

3、 不适合开源开发(开发人数非常非常多,但是Google app engine就是用svn的)。但是一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题。

Git优缺点
优点: 

1、适合分布式开发,强调个体。 

2、公共服务器压力和数据量都不会太大。 

3、速度快、灵活。 

4、任意两个开发者之间可以很容易的解决冲突。 

5、离线工作。 

缺点: 

1、学习周期相对而言比较长。 

2、不符合常规思维。 

3、代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。

Git和SVN的详细区别

Git使用教程

SVN使用教程

今天的文章Git和SVN的区别分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/7154.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注