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 的分支是轻量级的指针,无需新建文件夹。
相关推荐
zzzzls~1 天前
Vibe Coding 最佳实践:Claude Code 检查点回溯与 Git 自动存档每轮对话
git·ai·claude·vibe coding·checkpointing
ssshooter1 天前
彻底搞懂 SSH 与 Git 的“幕后交易”
git·github·全栈
Asurplus1 天前
Centos7安装Git环境
git·centos·yum·dnf
m0_743125131 天前
claude --version 报错Claude Code on Windows requires git-bash (https://git-scm.com/downloads/win).
开发语言·git·bash
AntoineGriezmann1 天前
Git:新建功能分支并解决 Merge 冲突
git
Sylus_sui1 天前
Git快速创建并推送新分支
git
悠悠子衿121381 天前
Claude+VSCODE配置git导致频繁弹出git bash 的CMO窗口解决方法
ide·git·vscode
QC七哥1 天前
伪造git提交记录生成点阵字符
git·github
HilariousDog1 天前
git仓库中克隆文件同时保存line history / 行提交历史的方法介绍
git
TimberWill2 天前
GitHub Copilot 一键生成中文commit提示语规则设置
git·github