GIT与SVN世纪大战

举报
伟大程序猿的诞生 发表于 2019/01/24 00:08:42 2019/01/24
【摘要】 为神马会写这篇文章?由于本人之前一直使用git虽然没到炉火纯青的地步但也能自由的coding,但是最近需要使用到svn,于是呢总在想两者有神马区别呢?接下来一起来仔细研究一番。

漫画篇

1.png

2.png

3.png

4.png

5.png

6.png

7.png

8.png

9.png

10.png

11.png

学术篇

差 异SVNGIT
系统特点1.集中式版本控制系统(文档管理很方便)
2.企业内部并行集中开发
3.windows系统上开发推荐使用
4.克隆一个拥有将近一万个提交(commit),五个分支,每个分支有大约1500个文件,用时将近一个小时
1.分布式系统(代码管理很方便)
2.开源项目开发
3.mac,Linux系统上开发推荐使用
4.克隆一个拥有将近一万个提交(commit),五个分支,每个分支有大约1500个文件,用时1分钟
灵活性1.搭载svn的服务器出现故障,无法与之交互
2.所有的svn操作都需要中央仓库交互(例:拉分支,看日志等)
1.可以单机操作,git服务器故障也可以在本地git仓库工作
2.除了push和pull(或fetch)操作,其他都可以在本地操作
3.根据自己开发任务任意在本地创建分支
4.日志都是在本地查看,效率较高
安全性较差,定期备份,并且是整个svn都得备份较高,每个开发者的本地就是一套完整版本库,记录着版本库的所有信息(gitlab集成了备份功能)
分支方面1.拉分支更像是copy一个路径
2.可针对任何子目录进行branch
3.拉分支的时间较慢,因为拉分支相当于copy
4.创建完分支后,影响全部成员,每个人都会拥有这个分支
5.多分支并行开发较重(工作较多而且繁琐)

1.我可以在Git的任意一个提交点(commit point)开启分支!(git checkout -b newbranch HashId)

2.拉分支时间较快,因为拉分支只是创建文件的指针和HEAD

3.自己本地创建的分支不会影响其他人

4.比较适合多分支并行开发

5.git checkout hash值(切回之前的版本,无需版本回退)

6.强大的cherry-pick


版本控制1.保存前后变化的差异数据,作为版本控制
2.版本号进行控制,每次操作都会产生一个高版本号(svn的全局版本号,这是svn一个较大的特点,git是hash值)
1.git只关心文件数据的整体发生变化,更像是把文件做快照,文件没有改变时,分支只想这个文件的指针不会改变,文件发生改变,指针指向新版本
2. 40 位长的哈希值作为版本号,没有先后之分
3.git rebase操作可以更好的保持提交记录的整洁
工作流程1.每次更改文件之前都得update操作,有的时候修改过程中这个文件有更新,commit不会成功
2.有冲突,会打断提交动作(冲突解决是一个提交速度的竞赛:手快者,先提交,平安无事;手慢者,后提交,可能遇到麻烦的冲突解决。)
1.开始工作前进行fetch操作,完成开发工作后push操作,有冲突解决冲突
2.git的提交过程不会被打断,有冲突会标记冲突文件
3.gitflow流程(经典)
内容管理vn对中文支持好,操作简单,适用于大众对程序的源代码管理方便,代码库占用的空间少,易于分支化管理
权限管理svn的权限管理相当严格,可以按组、个人针对某个子目录的权限控制(每个目录下都会有个.svn的隐藏文件)svn的权限管理相当严格,可以按组、个人针对某个子目录的权限控制(每个目录下都会有个.svn的隐藏文件)

命令篇

常用命令SVN命令GIT命令
版本库初始化svnadmin creategit init
导入数据svn importgit clone;git add;git commit
版本库检出svn checkoutgot clone
工作区更新svn updategit pull
切换至里程碑svn switch <url/of/tags/name>git checkout <tag>
回滚svn merge -r <rec>git revert <commit_id>将之前的提交反转 
git reset <commit_id>该commit_id之后的提交都会删除
分支合并svn merge <url/of/branch>git merge <branch>
提交拣选svn merge -c <rev>git cherry-pick

SVN官网: https://tortoisesvn.net/ 
GIT官网: https://git-scm.com/

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。