svn和git

作者: xxwade | 来源:发表于2014-11-27 00:33 被阅读120次

svn和git都用过,但都是浅尝辄止,只知道提交和更新,顶多再解决下冲突,看看log,其他就不知道了。或者说非常模糊,真要去用,捣鼓一会也没问题。基本功能能解决大部分问题,就不想投入更多精力在上面了。对于很多工具我都采取的是这种态度,够用之后就不去深究。或者我深究过,但之后没机会用,因而体验不深或者根本就忘了,认识也就一直很肤浅,这让我心慌。
大部分人都认为git优于svn,理由却又说不上来。git现今基本已经一统江湖了,svn属于被淘汰的上一代产品。很明显必然有更大的优势。

  • git各人都有一份完整的拷贝,本地就能进行版本管理。svn需要联网,集中管理,所有代码维护在中心。去中心化使得更大的团队的维护变得容易。
  • GIT牛掰的地方在于对分支管理,子项目依赖,代码冲突管理上比SVN高出不止一个数量级。
    举个例子:用一个开源的库,我们需要对开源的库某些部分进行修改,但是又想保证该库紧跟官方发布不过时。用SVN的话,要不一切手动,要不你就把你的修改提交到官方源去(基本上是不可能的)。用GIT,我可以克隆一个repository,新建一条branch保持私有修改,官方库有更新随时pull --rebase。
  • GIT的commit还可以乱序修改。比如说队里的熊孩子搞砸了,一连几个commit都不能编译。太简单了:用git rebase -i可以把一条branch上的坏commit一个一个剔掉。换了SVN,提交了坏代码的话,天皇老子都没法改。
  • 分支合并的方便和速度提升。基于revision的版本控制有一个弱点,就是在和合并时要将直至公共祖先前的所有revisions用复杂的算法重演才能完成合并的过程。而基于状态的git在合并时,只需要在公共祖先,两个分支的最新commit间发起一个3-way merge就可以了。因此git的合并速度出奇的快。也因为如此分支创建无以伦比的简单。(svn保存差异文件,git保存文件差异)
  • 微commit和微branch。git可以任意的commit和branch使得VCS对代码的控制可以达到非常细的粒度。每一个小的修改都可以立即commit,每一个小功能/fix都可以branch。这使得测试一个小修改该和drop一个小功能都非常的容易。甚至你可以随便将另外一个分支的某个commit直接打过来用在当前分支上(cherry-pick)。使得用户面临频繁的需求变动也可以轻松的管理代码。

注:大量引用网友观点。

相关文章

  • SVN迁移Git

    参考:GIt - 迁移到Git 构建user.txt 关联svn用户和git用户。 用git svn导入svn库 ...

  • git使用

    1.git和svn的区别①git分布式 svn是集中式(风险高)要很稳定才行②git和svn版本机制不同③git...

  • 项目迁移Svn To Git

    Svn vs Git 详解可见: Git 和 SVN 之间的五个基本区别、Svn与Git的区别废话不多说直接开始教...

  • Git | 绪

    绪 GIT和SVN的区别 GIT是分布式的,SVN不是,这是GIT和其它非分布式的版本控制系统,例如SVN、CVS...

  • git和svn

    GIT是分布式的,SVN不是GIT把内容按元数据方式存储,而SVN是按文件GIT分支和SVN的分支不同GIT没有一...

  • 2013学年总结之工具篇

    git/svn & markdown & vim & dash/zeal Git/Svn 在软件开发和很多场景下,...

  • gitlab 新建项目 git 命令 学习

    新项目迁移gitlab,学一波git ^ ^ GitHub && Gitlab && SVN 比较 SVN和Git...

  • Git使用教程

    SVN区别 Git 与 SVN 区别点: 1、GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统...

  • git tag 操作

    git命令-通过tag修复线上bug 步骤如下: Git与SVN区别 Git和SVN正好相反,git提倡开发时拉分...

  • Git 与 SVN对比详解

    一、Git vs SVN Git 和 SVN 孰优孰好,每个人有不同的体验。 Git是分布式的,SVN是集中式的 ...

网友评论

      本文标题:svn和git

      本文链接:https://www.haomeiwen.com/subject/tuawtttx.html