浅谈Git与SVN的使用感受

作为版本控制工作,两者的做大的区别应该在于:Git属于分布式版本控制工具,而SVN属于集中式的版本控制工具。分布式的好处是什么呢?举个例子来说,当你在火车上离线状态下编程工作,在某个阶段会需要先保存正确的代码状态(以便后续出问题时可以回滚),再开始后续的编码,这个时候Git就会发挥它的优势。因为它的分布式特性,可以同时拥有远程仓库和本地仓库,在火车上,即使不联网,也可以将程序的修改commit至本地的仓库,在联网的条件下再push到远程仓库中。而SVN因为是集中式的控制管理,所以它的每一次commit都需要联网提交至服务器端。

除了上面的描述的优势,git还有其他让人喜欢的特点:

  1. git只在仓库(repo)的根目录下创建.git文件夹,而svn会在每个目录下创建.svn文件夹(会产生更大的记录内容)
  2. 当你删除或是移动仓库内的某个文件时,git会帮你识别出具体的操作,而svn需要人为的指出
  3. 程序在编译过程产生的文件,如.pyc,如果不想提交至仓库,git可以在根目录下指定,从而运用到子目录,而svn就不容易做到这一点

现在越来越多的人使用git,它的风头也渐渐盖过了svn,而当我在某游戏公司实习时,却意外发现了svn的优势。前面讲到,git是一种分布式的版本控制工具,支持远程仓库和本地仓库,因此也就增加了使用的复杂性。与远程交互用push/pull,与本地交互用commit/checkout,而且它也缺乏好用的客户端。我们的游戏开发,需要策划、程序员、美术协同工作,虽然程序员接受git的使用相对简单,但是要给策划、美术做培训需要时间、人力的成本,svn以它简单操作的优势,在公司内部盛行。而且,它有一个很好用的客户端:TortoiseSVN

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-02 03:12:32

浅谈Git与SVN的使用感受的相关文章

浅谈GIT

浅谈GIT: 牛老师提出的git,于我而言,是一个陌生和新鲜的词汇,在此之前我从未听过git,按照老师的要求,我去搜索了关于git的介绍,有些看懂了,但大部分还是不懂得,在介绍中我了解git其实之前使用的人并不多,因为它的资料比较少,学习它所耗费的时间也比较长,而且它并不符合我们的惯性思维,但这些缺点在近几年不断的研究和更新中也慢慢的被克服,使用它并知道它的人也越来越多,人们发现它越来越多的优点,比如git的速度很快,这对一些大项目来说是非常重要的,它还支持离线工作,而且git的公共服务器压力和

【浅谈git常用命令】

前言 本篇是继<浅谈git如何使用>之后介绍常用的git指令操作,如果还有了解过git的朋友们,建议先看看这篇博客,这篇博客主要是介绍如何动手安装git的环境.如何将本机绑定github账号.如何在github上创建仓库及如何将本地仓库与远程仓库关联等.<浅谈git如何使用>:http://blog.csdn.net/u010989191/article/details/51225071. Git指令介绍 本次演示仍是继上次创建的仓库first,一切在此基础上演示. 1 .创建版本

谈一谈git和SVN两大版本管理工具。

Git 和 SVN 的区别? 写在前面: git和SVN都是一个版本管理工具,没有孰优孰劣之分,在这里,只是简单的说一说git和svn的优缺点.选用哪一个看自己公司的实际情况而定. 1) 核心的区别在于git是分布式的,SVN不是.但git不是唯一的分布式的版本管理工具,还有像Mercurial等分布式版本管理工具,也有像SVN一样的集中式版本管理工具,例如VSS,CVS等.Git跟SVN一样有自己的集中式版本库和Server端,但Git更倾向于分布式开发,因为每一个开发人员的电脑上都有一个Lo

【浅谈Git如何使用】

前言 git是很多程序员的lover,它的功能远比SVN强大的多.使用git可以很容易进行版本控制,多条分支进行不同的工作开发及多人协同开发等.对于一个程序员而言,也许在你的项目中并没有接触过git,但是了解git也是一种基本的素质. 开发环境的搭建 根据自己的系统环境下载不同的安装包,官网地址:https://git-scm.com/download/.如果你的电脑是window 64位的话,可以到此处下载:http://download.csdn.net/detail/u010989191/

浅谈GIT之底层对象理解

一.基本概述 首先定下一个基调就是Git并不是比SVN任何方面都好.SVN在某些功能或方面或者某些场景下也优于Git. 只是这篇文章讨论涉及到的点要与SVN相比,然后突出Git的某些方面的优越性而已. 对于Git而言,它本身是一个内容寻址文件系统,会将需要存储的东西按元数据meta data方式存储在一个KV数据库里面, 类似HashMap的这样的键值对结构,然后会按照内容生成相应的唯一hashcode作为内容的key, 而对于SVN而言,则是按照文件方式存储. 所以,看出一个特点就是如果需要的

浅谈.net jenkins svn下自动化集成环境安装 搭建 配置

本人做.net研发已有3年多了,之前一直偏向于技术研究,自己学了很多技术,现在突然发现学了那么多技术有什么用呢?真正用到的并不多. 现在?算是一只小鸟吧,自嘲下.....毕竟我是90后,很多领导对于90后这个词没有信任感,相信很多小伙伴都有这样的体会.所以在开发中,我能用到的实力只有20%左右,都是写平时写的想吐的代码(很多公司的架构烂到透,他们追求的不是技术而是业务),偶尔给出点建议,还被唾弃.呵呵..... jenkins就是其中一例,目前新版本测试阶段,一天打包N次,每次测试让打包,我就觉

浅谈GIT之通讯协议

一.基本概述 git目前支持4种的通讯协议:本地协议(Local).ssh.http(Dumb哑协议和Smart智能协议)和Git协议 1.1.本地协议介绍 本地协议是基于本地文件系统或者共享的文件系统进行访问,也就是说远程版本库就是硬盘中另外的一个目录. 因此搭建起来就特别容易,可以完成代码的版本管理.适合临时搭建使用. 以下代码做演示 首先我在e盘创建一个共享文件夹git_repo,然后创建一个裸仓库做交互 1 ## 2 hjji[email protected] MINGW64 /e 3

浅谈两个月的学习感受

从html+css+javascript,耗时两个月. 掌握的东西大致如下 css部分 1.选择器  2.浮动和定位 3.盒模型 html 常用标签及其用法 javascript 1.基本语法 2.常用语句 3.函数申明 4.基本对象 5.构造函数 6.作用域 7.原型链 8.OOP编程思想 最初一个月学习html+css的方法是对着w3shool手册练习.常用的都过了一遍,然而表单部分却很少用(这是个巨坑). 然而更大的坑在学习js时显露的更加明显,因为当初的入门是按着手册来行走,所以在盒模型

【续谈git常用指令】

前言 本篇是续上篇[浅谈git常用命令]之后的补充一些git指令.本篇主要介绍git merge和git rebase命令. 补充git指令 1)git merge <branch> 合并指定分支到当前分支.在实际的项目开发中总会需要将其他分支的开发合并到master主分支.如果在合并的过程中出现冲突,需要先解决冲突后再合并.合并的过程如下图所示: 首先在主干分支创建first.txt并提交,模拟主干分支正常业务开发.在某一个时刻有其他的项目成员加入项目组开发,即出现mywork分支,该成员也