Git 与 SVN 的区别

2022/03/04 Git SVN 面试题 共 693 字,约 2 分钟

区别

 集中式(SVN)分布式(Git)
是否有中央服务器有。开发人员需要从中央服务器获得最新版本的项目然后在本地开发,开发完推送给中央服务器。因此脱离服务器开发者几乎无法工作没有。开发人员本地有 Local Repository
网络依赖必须要联网才能工作,而且对网络的依赖性较强。如果推送的文件比较大而且网络状况欠佳,则提交文件的速度会受到很大的限制分布式在没有网络的情况下也可以执行 commit、查看版本提交记录、以及分支操作,在有网络的情况下执行 push 推送到 Remote Repository
文件存储格式按照原始文件存储,体积较大按照元数据方式存储,体积很小
是否有版本号没有
分支操作的影响创建新的分支则所有人都会拥有和你一样的分支分支操作不会影响其他开发人员
提交提交的文件会直接记录到中央版本库提交是本地操作,需要执行 push 操作才会到主要版本库

工作流对比

SVN

  1. 本地写代码
  2. 从服务器拉回服务器的当前版本库,并解决冲突
  3. 将本地代码提交到服务器

Git

  1. 本地写代码
  2. 提交到本地版本库
  3. 从服务器拉回服务器的当前版本库,并解决冲突
  4. 将远程与本地代码合并结果提交到本地版本库
  5. 将本地版本库推送到服务器

SVN 的优势

  1. 优异的跨平台支持,对 windows 平台支持非常友好
  2. 简单易用,安装后稍微培训就知道如何操作
  3. 代码、需求、文档、设计稿等都可以用 svn 进行管理,适合不同部门非技术的同事写作

Git 的优势

  1. 去中心化:git 没有中心服务器,每个机器上都是一台完整的库。
  2. 本地提交(好处):
    • 断网提交
    • 小步提交:可以对自己的阶段成果有所跟踪,并且提高每次变更的安全性
    • 本地库:和断网提交同一个实现,但从需求角度出发则略有不同
    • 本地回滚
  3. 分支策略