git和svn一些使用上的区别

1. 提交流程不同

  • SVN(集中式版本控制)

    • 只有一步:svn commit
    • 提交直接推送到中央服务器,立即对所有人可见。
    • 本地没有完整历史。
  • Git(分布式版本控制)

    • 分两步:
      1. git commit → 提交到本地仓库
      2. git push → 将本地提交推送到远程仓库(如 GitHub、GitLab)
    • 本地有完整历史

2. 分支机制不同

  • SVN

    • 分支是通过在仓库中复制目录 实现的(例如 /trunk/branches/feature-x)。
    • 虽然底层是"廉价拷贝"(只记录差异),但在用户视角上确实像"新建文件夹"。
    • 切换分支需切换工作目录路径(或重新 checkout),较重。
  • Git

    • 分支只是一个轻量级指针(指向某次提交)。
    • 创建分支:git branch feature-x(几乎瞬间完成)
    • 切换分支:git checkout feature-xgit switch feature-x(本地快速切换,不改变物理目录结构)
    • 所有分支共用同一个工作目录,切换时文件自动更新。

总结

  1. SVN 的 commit 直接同步到服务器,而 Git 先在本地 commit,再 push 到远程。
  2. SVN 的分支是物理路径上的复制,Git 的分支是轻量级的指针,无需新建文件夹。
相关推荐
悠然大月季1 小时前
git 怎么导出提交历史,文件是乱码
git·git导出历史记录·git导出历史乱码
chenshiming8023 小时前
在cursor下执行GIT回退版本
git
打点计时器6 小时前
Git快速上手教程
git
我才是一卓7 小时前
linux 安装简易 git 服务端并使用
linux·运维·git
IDIOT___IDIOT8 小时前
关于 git 进行版本管理的时候 gitignore 写入忽略规则而不生效的问题
大数据·git·elasticsearch
不想看见4048 小时前
Git 误删急救手册
大数据·git·elasticsearch
偷懒下载原神9 小时前
【linux操作系统】信号
linux·运维·服务器·开发语言·c++·git·后端
IT二叔9 小时前
Git Flow03-发布流程
git
IT二叔9 小时前
Git Flow08-摘樱桃
git
「QT(C++)开发工程师」10 小时前
Git误操作急救手册大纲
git