Git与SVN,选哪个好?

    Git与SVN,我们应该选用哪个好?首先我们来看一下具体他们有什么不同之处。

Git分布式,而SVN集中式:

SVN:

       SVN属于集中化的版本控制系统,必须联网才能工作。有个不太精确的比喻:SVN = 版本控制+ 备份服务器,SVN支持并行读写文件,支持代码的版本化管理,功能包括取出、导入、更新、分支、改名、还原、合并等。大都采用图形界面操作,直观,上手快。
这里写图片描述

Git:

      Git是一个分布式版本控制系统,操作命令包括:clone,pull,push,branch ,merge ,push,rebase,Git擅长的是程序代码的版本化管理。代码库占用空间小,不支持中文,图形界面支持差,使用难度大。不易推广。
这里写图片描述

普及点干货(集中式与分布式):

集中式:
这里写图片描述
      集中式版本控制系统,版本库是集中在中央服务器的,而干活儿的时候都是用自己的电脑,我们需要先从中央仓库获取代码,修改之后再提交到中央服务器。

分布式:
这里写图片描述
      分布式版本控制系统不需要联网,它就没有中央服务器这一说,每个人的电脑都是一个完整的版本库,那么我们该如何协作呢?Git有个推送,比如A在A的电脑上改完模块1,B在B的电脑也改了模块1,AB只需要互相推送给对方,就能互相看到对方的修改了。

      GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。

      GIT跟SVN一样有自己的集中式版本库或服务器。但,GIT更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一个自己的版本库。可以这样说,如果你被困在一个不能连接网络的地方时,就像在飞机上,地下室,电梯里等,你仍然能够提 交文件,查看历史版本记录,创建项目分支等。对一些人来说,这好像没多大用处,但当你突然遇到没有网络的环境时,这个将解决你的大麻烦。

      同样,这种分布式的操作模式对于开源软件社区的开发来说也是个巨大的恩赐,你不必再像以前那样做出补丁包,通过email方式发送出去,你只需要创建一个分支,向项目团队发送一个推请求。这能让你的代码保持最新,而且不会在传输过程中丢失。GitHub.com就是一个这样的优秀案例。

Git与SVN分支不同

      SVN:如果你想知道是否合并了一个分支,你需要手工运行像这样的命令svn propget svn:mergeinfo,来确认代码是否被合并。

      GIT:你可以从同一个工作目录下快速的在几个分支间切换。你很容易发现未被合并的分支,你能简单而快捷的合并这些文件。
**

GIT没有全局的版本号,而SVN有

      目前为止这是跟SVN相比GIT缺少的最大的一个特征。

GIT的内容完整性优于SVN

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

总结

      GIT分布式版本控制不需要联网,每个人都有完整的版本库,适用于代码管理;SVN集中式版本控制需要联网,每个人都需要直接和中央服务器打交道,适用于项目管理。虽然GIT操作不简便,但我们可以结合SourceTree来使用,下一篇小编将为您呈现Git结合SourceTree管理代码。

感谢您的阅读!

猜你喜欢

转载自blog.csdn.net/hongwei15732623364/article/details/78424476