最近开始学Git,跟以前常用的SVN来做个对比,以便对双方的优缺点了解更多些。

其实Git和SVN还是挺像的,都有提交,合并等操作,看来这是源码管理工具的基本操作。

1. Git是分布式的,SVN是集中式的,好处是跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上,一段时间后再提交、合并,也可以不用联网在本地提交;

2. Git下载下来后,在本地不必联网就可以看到所有的log,很方便学习,SVN却需要联网;

3. Git鼓励分Branch,而SVN,说实话,我用Branch的次数还挺少的,SVN自带的Branch merge我还真没用过,有merge时用的是Beyond Compare工具合并后再Commit的;

4. Tortoise也有出Git版本,真是好东西;

5. SVN在Commit前,我们都建议是先Update一下,跟本地的代码编译没问题,并确保开发的功能正常后再提交,这样其实挺麻烦的,有好几次同事没有先Updata,就
Commit了,发生了一些错误,耽误了大家时间,Git可能这种情况会少些。

大家也可以搜一搜Git和SVN命令的比对。

下面有一篇文章这样讨论,楼主认为SVN没什么用,我比较认同Ghoststears的观点。

有了GIT,SVN纯粹一垃圾

Ghoststears:

任何事情,归根结底都是人的问题,工具只是工具。

SVN 是集中式的,会出现你说的耦合。但从另外一个方面来说,这也要求开发人员代码的规范:不要一个函数干很多事情,不要一个文件写很多个类。

另外,将不可运行的代码提交到任何版本控制系统中都是没有意义的。这也就是版本控制的核心思想之一。也就是提交的粒度:原子性。所谓的原子性,也就是完成一件任务,这个任务可以是一个函数声明,也可以是一个函数的实现,亦或是一个子系统。但这个任务的完成的标志就是代码可以运行,不能运行的代码,最多也就是完成了半个任务。这个是不符合版本控制思想的。试想,你 update 到某一个 version 的时候,代码竟然是不能运行的,是何心情???

将不能运行的代码提交,完全是开发人员素质或者公司管理流程、机制的问题。

另外,很多人都强调:我晚上下班了要在家里干活,不能提交!!!来抨击集中式版本控制工具。且不说对待工作和生活态度。先看看国内的企业,防员工如防贼的多的去了。有多少人能带着笔记本,把公司的源代码签出来呢???

版本控制系统中,工具只是其中一环。要结合公司的策略来选用合适的工具。版本控制 != 版本控制工具 !!!= 源代码管理。

最后,人各有喜好。上纲上线的,完全没有必要。

SVN和Git的比较相关推荐

  1. 命令行操作svn和git和git

    前几天在写代码的时候电脑突然坏掉,老大交代的任务没完成,非常痛恨自己用svn或者git保存代码,相信很多程序员遇到过,硬盘坏掉,存在硬盘中的代码丢失,无法找回的问题,svn和git可谓程序员界的福音, ...

  2. SVN和Git 介绍,区别,优缺点以及适用范围

    SVN: SVN是Subversion的简称,是一个开放源代码的版本控制系统,支持大多数常见的操作系统.作为一个开源的版本控制系统,Subversion管理着随时间改变的数据.这些数据放置在一个中央资 ...

  3. 【转】SVN 与 GIT 详细对比

    [转]SVN 与 GIT 详细对比 git和svn的详细对比 近期就[版本管理工具是否进行切换SVN->Git]的问题进行了讨论,于是对svn和Git进行了相关研究,进而梳理出Git的特点(优. ...

  4. Linux 下禅道和 SVN、GIT 集成插件发布

    Linux 下 SVN.GIT 可以和禅道集成了.在版本库中提交代码就可以自动更新关联禅道的任务和Bug.感谢网友张彪的开发. 一.下载地址 1.源代码:https://github.com/easy ...

  5. linux svn权限如何打开文件,如何让 SVN 或者 GIT 保留 Linux 文件权限

    想问一下各位是怎么让 SVN 或者 GIT 保留 Linux 文件权限的. 背景: 十一期间帮朋友解决一个问题,他们的知识库是用 WordPress 搭建的(which is a stupid cho ...

  6. Git迁移 从SVN到Git

    Migrating from SVN to Git 首先我们需要在Stach或者GitHub上新建一个Repository, 拿到它的URL. 接下来参照如下步骤 : At first we shou ...

  7. 如果从SVN到GIT

    本来是题目是从SVN到GIT,但是现在还并没有真正开始做,因为最近工作比较忙. 今天写一下这一段时间对GIT的学习的一些大概的情况的了解和分析. 其实确切地说,并不是从SVN迁移到GIT,因为我并不是 ...

  8. 话说Svn与Git的区别

    把第一条理解到位思想到位了做起来才会有的放矢,其他几条都是用的时候才能体会到 1) 最核心的区别Git是分布式的,而Svn不是分布的.能理解这点,上手会很容易,声明一点Git并不是目前唯一的分布式版本 ...

  9. 关于svn、git生成版本号脚本的再次改进

    自从很久之前写了<SVN.GIT生成版本号>和<关于svn.git生成版本号脚本的改进>两篇文章后,自以为不会再修改了,结果却不如人意,里面的的脚本还是有bug,现在又要进行再 ...

  10. 关于svn、git生成版本号脚本的改进

    之前写了篇文章介绍使用脚本生成SVN.GIT版本号的<SVN.GIT生成版本号>,获取SVN版本号的方法有些不恰当,在不同版本的SVN上会出现问题.这里再对此进行完善. 之前的脚本是通过下 ...

最新文章

  1. JQuery 动态创建表单,并自动提交
  2. 服务器架构及实战(架构篇)- PHP建站
  3. 残差网络(Residual Networks, ResNets)
  4. 这些大酒店用大数据和分析技术对我们做了什么?
  5. java链接mysql输出查询_用java做网站,java连接数据库并查询输出到页面
  6. 将服务器文件加载至hive表中,Hive入门到剖析(四)
  7. 一站式 Java Web 框架 firefly-2.0_07发布
  8. linux捕捉信号sigint失败,为shell布置陷阱:trap捕捉信号方法论
  9. @Transactional注解属性(1)
  10. java视频教程免费下载
  11. Java onvif协议,Java onvif协议通用协议获取rtsp地址
  12. CNC:机械工程之机械制图的几何特征、测量、配合、公差带、图纸标注、公差、配合、表面粗糙度之详细攻略
  13. 东芝停电事件可能导致Q3闪存市场价格波动
  14. 程序员如何站在巨人的肩膀上
  15. matlab中内插cubic,cubic与spline插值点处的区别
  16. 产品模块化设计的前世今生
  17. 图像处理笔记二(阙值、霍夫变换、重映射)
  18. wps word文档生成目录的时候显示断裂会生成大纲怎么办_如何用Word编辑参考文献...
  19. CS5261与AG9310 demoboard测试板功能对比|CS5261替代安格AG9310成本优势
  20. “燕云十六将”之毛毛杜倩(7)

热门文章

  1. 必要商城高级UED经理张不写:设计师如何规划职业方向
  2. 激活用户并让他留下,仅是“活下去”的第一步
  3. 10万点击率的“干货”,其实人人都写得出来
  4. Python即时网络爬虫项目: 内容提取器的定义(Python2.7版本)
  5. 【原创】多线程应用中pthread库使用问题
  6. SharePoint 2013 图文开发系列之WebPart
  7. APR-Util 1.5.1 发布
  8. 基于哈希算法的web账户口令存储方法
  9. show controller e1
  10. linux内核剖析(八)进程间通信之-管道