zoukankan      html  css  js  c++  java
  • svn和git

    版本工具

    差异

    svn

    git

    系统特点

    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流程(经典)

    内容管理

    svn对中文支持好,操作简单,适用于大众

    对程序的源代码管理方便,代码库占用的空间少,易于分支化管理

    学习成本

    使用起来更方便,svn对中文支持好,操作简单,适用于大众

    更在乎效率而不是易用性,成本较高(有很多独有的命令,rebase,远程仓库交互的命令,等等)

    权限管理

    svn的权限管理相当严格,可以按组、个人针对某个子目录的权限控制(每个目录下都会有个.svn的隐藏文件)

    git没有严格的权限管理控制,只有账号角色划分(在项目的home文件下有且只有一个.svn目录)

    管理平台

    有吧(这个“吧”字,肯定有,但本人没有接触过)

    gitlab(建议使用,集成的功能较多,API开发),gerrit,github等

  • 相关阅读:
    SSP状态寄存器SSPSTAT
    【PIC学习第18例】PIC16F877A 内部EEPROM读写实验
    批量去除flv专辑的片头
    .Net并行库介绍——Task(1)
    一个下载游戏封面的站点
    一个猜数字的小游戏
    RamDisk加速Windows 7?
    .Net并行库介绍——Task(2)
    数独的自动出题算法
    Live Messenger 2009登陆错误的解决方法
  • 原文地址:https://www.cnblogs.com/manshufeier/p/9542834.html
Copyright © 2011-2022 走看看