Git  VS SVN  
1 .功能
主体功能 Git SVN
1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。 1 、SVN是基于关系数据库的(BerkleyDB)或一系列二进制文件的(FS_FS)
2、在自己的机器上根据不同的开发目的,创建分支,修改代码 2 、SVN采用标志和分支而抛弃了其他三件东西,实际上这意味着他们把
这个概念替换为在档案库内部复制文件或目录以便保存日志。
3、在单机上自己创建的分支上提交代码。 3、开发的时候不一定要锁定
4、在单机上合并分支。 4、速度与稳定性看起来都不错。
5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。 5、面向用户的集中安全策略管理;
6、生成补丁(patch),把补丁发送给主开发者。  
7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突
(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由
其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
 
8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决
冲突,解决完冲突之后再向主开发者提交补丁。
 
从主开发者的角度(假设主开发者
不用开发代码)看,git有以下功能:
   
1、查看邮件或者通过其它方式查看一般开发者的提交状态  
2、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以
后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。
 
3、向公共服务器提交结果,然后通知所有开发人员。  
2.优点    
1、适合分布式开发,强调个体。 1、管理方便,逻辑明确,符合一般人思维习惯。
2、公共服务器压力和数据量都不会太大。 2、易于管理,集中式服务器更能保证安全性
3、速度快、灵活。 3、代码一致性非常高。
4、任意两个开发者之间可以很容易的解决冲突。 4、适合开发人数不多的项目开发。
5、离线工作。 5、大部分软件配置管理的大学教材都是使用svn
   
3. 缺点  
1、学习周期相对而言比较长 1、服务器压力太大,数据库容量暴增。
2、不符合常规思维。 2、如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器
不能连接上,就不能提交,还原,对比等等。
3、代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代
码和版本信息
一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题
   
区别
     
比较项目 Git 命令 SVN 命令
URL git://host/path/to/repos.git svn://host/path/to/repos
ssh://user@host/path/to/repos https://host/path/repos
file:///path/to/repos file:///path/to/repos
user@host:path/to/repos  
/path/to/repos.git  
版本库初始化 git init[--bare]<path> svnadmin
create<path>
导入数据 git clone; git add; git commit svn
import<path><url>-m
版本库检验出 git clone<url><path> svn
checkout<url/of/trunk><path>
版本库分支检出 git clone -b
<branch><url><path>
svn
checkout<url/ofranches/name><path>
工作区更新 git pull svn update
更新至历史版本 git checkout <commit> suv update -r
<rev>
更新到指定日期 git 
checkout HEAD@'{<date>}'
git update -r
{<date>}
更新至最新提交 git checkout master git update -r HEAD
切换至里程碑 git checkout <tag> svn
switch<url/of/tags/name>
切换至分支 git checkout <branch> svn
switch<url/of/branches/name>
还原文件/强制覆盖 git checkout --<path> svn
revert<path>
添加文件 git add <path> svn add <path>
删除文件 git rm <path> svn rm <path>
移动文件 git mv <old> <new> svn mv
<old><new>
清除未跟踪文件 git clean svn status | sed -e??
清除工作锁定 _ svn clean
读取文件历史版本 git show
<commit>:<path>><output>
svn cat
-r<rev><url/of/file>@<rev>><output>
反删除文件 git add <path> svn cp -r
工作区差异比较 git diff
git diff --cached
git diff HEAD
svn diff
版本间差异比较 git diff
<commit1><commit2>--<path>
svn diff -r
<rev1>:<rev2><path>
查看工作区状态 git status -s svn status
提交 git commit -a -m
"<msg>":git push
svn commit -m
"<msg>"
显示提交日志 git log svn log | less
逐行追溯 git blame git blame
显示里程碑/分支 git tag
git branch
git show -ref
svn
ls <url/of/tags/>
svn ls <url/of/branches/>
创建里程碑 git tag [-m
"<msg>"]<tagname> [<commit>]
svn
cp <url/of/trunk><url/of/tags/name>
删除里程碑 git tag -d <tagname> svn  rm <url/of/tags/name>
创建分支 git branch <brach>
<commit> git checkout -b <branch><commit>
svn cp
<url/of/trunk> <url/braches/name>
删除分支 git bracn -d<branch> svn rm
<url/of/branches/name>
导出项目文件 git archive -o
<output.tar><commit>
svn
export -r <rev> <path><oupt/path>
svn export -r <rev><url><output/path>
反转提交 git revert<commit> git merge -c
<rev>
提交练选 git cherry-pick<commit> git merg -c
<rev>
分支合并 git merge <branch> svn merge
<url/of/branch>
冲突解决 git
mergetool
git add <path>
svn
resolve --accept = <ARG><path>
svn resolved<path>
显示文件列表 git
ls-files
git ls-tree<commit>
git
ls
git ls <url> -r <rev>
更改提交说明 git commit -amend svn ps -revprop -r
<rev>svn:log "<<msg>"
撤销提交 git reset[--soft|hard]HEAD^ svnadmin dump,
svnadmin load ,svndumpfiler
属性 .gitignore
文件
text 属性
eol 属性
git submodule  命令
svn
:ignore
svn: mime-type
svn:eol-style
svn:externals
svn:keywords

git 和 svn 的比较的更多相关文章

  1. GIT和SVN之间的区别及基本操作对比

    1)GIT是分布式的,SVN不是: 这是GIT和其它非分布式的版本控制系统,例如 SVN,CVS等,最核心的区别.如果你能理解这个概念,那么你就已经上手一半了.需要做一点声明,GIT并不是目前第一个或 ...

  2. GIT和SVN之间的五个基本区别

    GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等.如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征.所以,这篇文章的主要目的就是 ...

  3. iOS开发——源代码管理——git(分布式版本控制和集中式版本控制对比,git和SVN对比,git常用指令,搭建GitHub远程仓库,搭建oschina远程仓库 )

    一.git简介 什么是git? git是一款开源的分布式版本控制工具 在世界上所有的分布式版本控制工具中,git是最快.最简单.最流行的   git的起源 作者是Linux之父:Linus Bened ...

  4. GIT与SVN的区别

    1.GIT是分布式的,SVN不是: 这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别.如果你能理解这个概念,那么你就已经上手一半了.需要做一点声明,GIT并不是目前第一个或唯 ...

  5. 蒋鑫:为什么 Git 比 SVN 好

    在版本控制系统的选型上,是选择Git还是SVN? 对于开源项目来说这不算问题.使用Git极大地提高了开发效率.扩大了开源项目的参与度. 增强了版本控制系统的安全性,选择Git早已是大势所趋. 但对于企 ...

  6. git vs svn

    http://www.tuicool.com/articles/e2MnAb Git与SVN的不同之处 svn为集中化的版本控制,svn获取最新的版本或者提交更新,历史记录等信息每次都要连接中央版本库 ...

  7. [git/svn]Git和SVN差异

    转自:http://blog.csdn.net/huacuilaifa/article/details/19124635 在参加百度的开源项目时接触到Git,后来又陆续在微博上看到很多宣扬Git为程序 ...

  8. git和svn的区别001

    Git和SVN之间的五个基本区别 中文原文地址:http://blog.jobbole.com/31444/ 友情链接git和svn链接2:http://blog.csdn.net/sunboy_20 ...

  9. git 和 svn的区别(转)

    英文原文:5 Fundamental differences between GIT & SVN,编译:外刊IT评论 如果你在读这篇文章,说明你跟大多数开发者一样对GIT感兴趣,如果你还没有机 ...

  10. git与svn的区别-小结一下

    1)Git是分布式的,SVN不是: 这 是GIT和其它非分布式的版本控制系 统,例如SVN,CVS等,最核心的区别.好处是跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上,一段时间后再提交.合并 ...

随机推荐

  1. Uva 11542 Square

    题目中说数组中的数的最大质因子不超过500,我们筛出≤500的质数,然后考虑对每个质数列一个方程组.. 然后这几乎就是高斯消元求解异或方程组的模板题了.... 注意答案是 2^(自由元数量)-1,因为 ...

  2. [POI2014]Beads

    题目大意: 有$n(n\leq10^6)$种颜色,第$i$种颜色有$c_i(\sum c_i\leq10^6)$个,指定第一个颜色为$a$,最后一个颜色为$b$,问对于一个长度为$m=\sum c_i ...

  3. jsp homework(*)

    3.编写一个JSP程序实现手表的功能,显示当前时间(时:分:秒),并不停地自动刷新时间. 方法一[scriptlet] <%@ page language="java" im ...

  4. OC语言基础之代码的封装

    1.封装的注意点 1: // 成员变量尽量不要用@public 2: // @public 3: int age; 1: //@public 2: // 只读(readonly):只允许外界访问我的n ...

  5. 深入理解brew link命令

    来源:https://newsn.net/say/brew-link-php71.html brew是mac机上面程序猿非常常用的软件包安装方式,其中有两组命令是需要大家知晓的.分别是: 第一组:br ...

  6. ylb:事务处理

    ylbtech_sqlserver --1.定义三个变量分别保存你的姓名,年龄和身高,然后赋值并且输出 --DECLARE @name varchar(10) , @age int , @height ...

  7. 计算GPS两点间的距离[单位为:米]

    /**     * 计算GPS两点间的距离[单位为:米]     * @param center GPS当前数据(LonLat对象表示,LonLat.lon表示经度,LonLat.lat表示纬度)   ...

  8. 机器学习第3课:线性代数回顾(Linear Algebra Review)

    3.1  矩阵和向量 如图:这个是 4×2 矩阵,即 4 行 2 列,如 m 为行,n 为列,那么 m×n 即 4×2 矩阵的维数即行数×列数 矩阵元素(矩阵项): Aij 指第 i 行,第 j 列的 ...

  9. .Net程序测试阿里云OSS开放存储服务

    阿里云官网有提供OSS相关的操作API文档和.Net程序的 SDK,也可以在这里下载OSS相关文件 但是API文档里面的都是通过http请求和响应的消息来描述如何操作OSS的 而一般在程序中需要的是O ...

  10. SharePoint 2013 表单认证使用ASP.Net配置工具加入用户

    前 言 上面一篇博客,我们了解到怎样为SharePoint 2013配置表单身份认证.可是加入用户是一个麻烦事儿:事实上,我们还能够用Asp.Net的配置工具,为SharePoint 2013加入表单 ...