尧图精选

Git 与 SVN 完全指南:从集中式到分布式的版本控制

🕒 发布时间:2026/9/6 4:52:16 📁 来源:尧图网络
大家好版本控制系统是开发团队协作的基石它记录文件的变更历史支持多人协同开发。本文将系统性地讲解SVN集中式和Git分布式两大版本控制系统的核心概念与常用操作帮助你快速上手并理解两者的区别。一、版本控制概述1.1 什么是版本控制版本控制是一种记录文件变更的系统以便日后查阅特定版本的历史记录。它是团队协作开发中不可或缺的工具。1.2 SVN 与 Git 的核心区别对比项SVN集中式Git分布式仓库位置中央服务器每个本地都有完整仓库网络依赖大部分操作需要联网大部分操作离线完成分支成本较高极低分支切换快速历史记录仅存储在中央服务器本地完整历史协作方式必须与中央服务器同步可自由在本地操作后推送适用场景企业内部、权限管理严格开源项目、分布式团队一句话总结SVN 是集中式的所有操作依赖中央服务器Git 是分布式的每个人本地都有完整的仓库副本。二、Git 核心概念2.1 四大区域区域说明工作区Working Directory本地文件目录即你编写代码的地方暂存区Staging Area存放准备提交的变更也称为 Index本地仓库Local Repository提交历史存储在本地的.git目录中远程仓库Remote Repository托管在服务器上的共享仓库如 GitHub、Gitee2.2 工作流程工作区 → git add → 暂存区 → git commit → 本地仓库 → git push → 远程仓库三、Git 基础配置3.1 配置用户信息Git 需要知道提交者的身份信息。# 全局配置针对电脑上的所有项目 git config --global user.name 你的姓名 git config --global user.email 你的邮箱 # 局部配置仅针对当前项目优先级高于全局 git config user.name 项目专用姓名 git config user.email 项目专用邮箱 # 查看所有配置 git config --list3.2 初始化仓库# 将当前目录变为 Git 项目生成 .git 隐藏文件夹 git init四、Git 基本操作4.1 查看状态git status# 查看工作区和暂存区的状态 git status # 状态颜色说明 # 白色 正常 # 红色 工作区有修改未提交 # 绿色 暂存区有修改未提交4.2 添加文件git add# 将工作区的变更添加到暂存区 git add 文件名 # 添加单个文件 git add . # 添加当前目录所有变更 git add *.py # 添加所有 Python 文件4.3 撤销暂存git restore --staged# 将暂存区的内容撤销回工作区取消 git add git restore --staged 文件名 # 撤销所有暂存内容 git restore --staged .4.4 提交git commit# 从暂存区提交到本地仓库 git commit -m 提交信息 # 直接提交所有已追踪文件的变更跳过 git add git commit -a -m 提交信息4.5 查看提交日志git log# 查看提交历史详细 git log # 简洁模式一行一个提交 git log --oneline # 查看所有操作日志包含版本切换记录 git reflog4.6 版本回退git reset# 回退到指定版本保留工作区变更 git reset --soft 版本号前缀 # 回退到指定版本丢弃工作区变更谨慎使用 git reset --hard 版本号前缀不同模式对比模式工作区暂存区仓库--soft保留保留回退--mixed默认保留清除回退--hard清除清除回退五、Git 分支管理5.1 分支的核心概念分支是 Git 最强大的特性之一允许开发者在独立线上进行开发不影响主分支。# 查看所有分支* 表示当前分支 git branch # 查看所有分支包含远程分支 git branch -a # 创建新分支 git branch 分支名 # 切换分支 git switch 分支名 # 或使用旧命令 git checkout 分支名 # 创建并切换到新分支 git switch -c 分支名 # 删除分支 git branch -d 分支名 # 强制删除分支未合并时使用 git branch -D 分支名5.2 合并分支# 将目标分支合并到当前分支 git merge 目标分支名 # 示例将 dev 分支的代码合并到 main 分支 # 1. 先切换到 main 分支 git switch main # 2. 执行合并 git merge dev5.3 合并冲突解决当两个分支修改了同一文件的同一位置时Git 无法自动合并需要手动解决冲突。# 冲突文件中的标记 HEAD 当前分支的内容 被合并分支的内容 分支名 # 解决步骤 # 1. 手动编辑文件删除冲突标记保留想要的内容 # 2. 重新添加并提交 git add . git commit -m 解决冲突六、Git 与远程仓库6.1 关联远程仓库# 添加远程仓库 git remote add origin https://github.com/用户名/仓库名.git # 查看远程仓库 git remote -v # 修改远程仓库地址 git remote set-url origin 新地址6.2 推送与拉取# 推送到远程仓库 git push origin 分支名 # 首次推送时设置上游分支 git push -u origin 分支名 # 从远程仓库拉取更新 git pull origin 分支名 # 只拉取不合并查看远程变更 git fetch origin 分支名6.3 克隆仓库# 克隆远程仓库到本地 git clone 仓库地址 # 克隆指定分支 git clone -b 分支名 仓库地址七、Git 操作流程图text┌─────────────┐ git add ┌─────────────┐ git commit ┌─────────────┐ git push ┌─────────────┐ │ │ ──────────► │ │ ────────────► │ │ ───────────► │ │ │ 工作区 │ │ 暂存区 │ │ 本地仓库 │ │ 远程仓库 │ │ │ ◄────────── │ │ ◄──────────── │ │ ◄─────────── │ │ └─────────────┘ git restore └─────────────┘ git reset └─────────────┘ git pull └─────────────┘八、SVN 简介集中式8.1 SVN 的核心概念SVNSubversion是集中式版本控制系统所有版本历史存储在中央服务器上开发者需要从服务器获取代码并提交变更。8.2 SVN 常用命令命令说明svn checkout URL从服务器检出代码svn update更新本地代码到最新版本svn add 文件添加文件到版本控制svn commit -m msg提交变更到服务器svn status查看工作副本状态svn log查看提交历史svn diff查看文件变更差异svn revert撤销本地修改8.3 典型 SVN 工作流程# 1. 首次获取代码 svn checkout 仓库地址# 2. 更新最新代码 svn update 修改后会变红# 3. 修改代码后查看状态 svn status # 4. 添加新文件TortoiseSVN → Add# 5. 提交变更 svn commit8.4 SVN 与 Git 的对比总结特性SVNGit架构集中式分布式离线操作有限完整分支创建较慢极快分支合并复杂高效权限控制细粒度通过平台实现存储方式差异存储快照存储学习曲线较平缓较陡峭九、常用命令速查表Git 快速参考操作命令初始化git init查看状态git status添加文件git add .提交变更git commit -m msg查看日志git log --oneline查看操作日志git reflog回退版本git reset --hard 版本号查看分支git branch切换分支git switch 分支名创建分支git branch 分支名创建并切换git switch -c 分支名删除分支git branch -d 分支名合并分支git merge 分支名关联远程git remote add origin 地址推送git push origin 分支名拉取git pull origin 分支名克隆git clone 地址从暂存区撤销git restore --staged 文件名丢弃工作区修改git restore 文件名SVN 快速参考操作命令检出svn checkout URL更新svn update添加svn add 文件提交svn commit -m msg查看状态svn status查看日志svn log撤销修改svn revert 文件十、总结分类核心内容SVN集中式中央服务器存储所有版本checkout、update、commitGit分布式本地完整仓库add、commit、push、pullGit 四大区域工作区 → 暂存区 → 本地仓库 → 远程仓库Git 分支branch、switch、merge、branch -d版本回退git reset --hard、git reflog冲突解决手动编辑冲突文件重新addcommitSVN 适合权限管理严格的集中式开发场景Git 则凭借分布式特性和强大的分支管理能力成为开源项目和现代开发团队的首选。掌握 Git 的基本操作是每位开发者的必修课建议在实际项目中多练习逐步熟悉工作流程。如果觉得这篇内容对你有帮助欢迎收藏备用。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →