TortoiseSVN 超详细使用教程|手把手关联 Gitee 远程仓库
前言很多开发者日常习惯使用 Git 做版本管理但部分老旧项目、文档资源项目依然在使用 SVN。SVN 属于集中式版本控制系统上手简单权限管理直观对大文件友好。TortoiseSVN 是 Windows 下最常用的 SVN 图形化客户端俗称小乌龟。本篇文章讲解 SVN 基础、TortoiseSVN 安装配置、对接 Gitee 仓库、右键菜单全部功能、日常开发高频操作、命令行以及踩坑总结。一、SVN 与 TortoiseSVN 基础介绍1. SVNSubversionSVN 是集中式版本控制系统所有版本数据保存在中央远程仓库本地只是一份工作副本。所有提交、回滚、对比都要和远程仓库交互。优点上手简单学习成本低权限粒度细可以针对目录设置读写权限对二进制大文件友好适合文档、资源文件管理操作逻辑简单适合中小型团队缺点依赖中央仓库服务器故障会影响全部工作分支操作相比 Git 笨重离线无法提交版本区分Git 是分布式本地完整保存全部仓库历史SVN 集中式本地只有当前代码。2. TortoiseSVNTortoiseSVN 是 Windows 平台开源免费的 SVN 图形客户端集成到系统右键菜单不需要单独打开软件右键即可完成 svn 全部操作。⚠️注意安装 TortoiseSVN 的时候务必勾选安装命令行工具否则 cmd 无法使用 svn 指令。二、准备工作1. 安装 TortoiseSVN官网下载对应系统版本TortoiseSVN运行安装包一路 next勾选 Command Line Tools 命令行工具安装完成后重启资源管理器右键菜单就会出现 TortoiseSVN 相关选项。验证命令行打开 cmd输入svn --version输出版本号代表安装成功。2. Gitee 端开启 SVN 支持Gitee 仓库同时支持 Git 和 SVN 访问。打开你的 Gitee 项目仓库主页克隆仓库处切换到SVN地址复制 SVN 仓库地址Gitee 账号密码使用 Gitee 账号密码处填写个人私人令牌不要填登录密码。Gitee 现在禁止账号登录密码直接用于 svn/http 访问需要生成私人令牌。生成 Gitee 私人令牌步骤Gitee 右上角头像 → 设置 → 安全设置 → 私人令牌生成新令牌勾选权限projects(项目相关权限)复制保存令牌只显示一次这个就是 SVN 访问时的密码。三、TortoiseSVN 关联 Gitee 仓库完整流程方式 1检出Checkout远程仓库到本地适用于 Gitee 已经有仓库把代码拉取到本地在本地新建一个空文件夹作为工作目录文件夹空白处右键 →SVN Checkout...URL of repository粘贴 Gitee 的 SVN 仓库地址Checkout directory本地工作目录刚才新建文件夹检出深度默认Fully recursive全部递归点击 OK弹窗输入账号gitee 用户名密码私人令牌不行了用gitee 密码等待完成本地文件夹就会拉取远程仓库文件文件夹出现 svn 标记图标。如果本地文件夹没有图标TortoiseSVN 设置重启电脑或者清理图标缓存。方式 2本地已有项目提交到 Gitee SVN 仓库⚠️SVN 不能直接把本地普通文件夹上传远程需要先导入不要直接拖拽。本地项目文件夹右键 → TortoiseSVN → ImportURL 填写 Gitee SVN 远程地址填写提交备注OK输入账号和私人令牌Import 只是把文件上传远程本地文件夹不会变成 svn 工作副本导入完成后必须执行 Checkout 检出远程仓库到本地得到带 svn 管理的工作副本后续才能提交更新。重点坑Import 导入之后本地不是工作副本不能直接修改提交必须重新 checkout。四、TortoiseSVN 右键菜单全功能详解在已经被 SVN 管理的工作副本文件夹空白处右键弹出下面菜单每一项作用与实操说明Show log 显示日志查看当前文件 / 文件夹全部提交历史、版本号、提交人、时间日志。可对比版本、回溯历史。 使用右键→Show log双击条目查看改动选中记录右键可做版本对比。 场景追溯代码修改记录定位 bug 引入版本。Repo‑browser 仓库浏览器无需完整检出直接浏览远程仓库目录文件。 使用输入远程 SVN 地址输入账号令牌直接查看远程文件复制 URL。 场景只想看远程文件不想下载全部代码。Check for modifications 检查修改扫描本地列出所有新增、修改、删除、冲突文件无需连接远程服务器。 使用提交前执行确认自己改动了哪些文件防止误提交无关内容。Revision graph 版本图图形化展示仓库分支、标签、合并分叉关系。 使用点击生成可视化分支树。 场景多分支项目理清分支演进关系。Resolve... 解决冲突手动修改完冲突代码之后标记冲突已经处理完毕。 使用冲突文件右键→Resolve清理.mine临时冲突文件。 场景多人修改同一位置产生冲突后使用。Update to revision... 更新到指定版本本地切换到某个历史版本只修改本地不会改动远程仓库。 使用输入版本号本地回退想要远程回滚需要在此基础上再 commit 提交。 场景复现旧版本 bug临时查看历史代码。Revert... 还原丢弃本地尚未提交的全部修改恢复为服务器版本。修改直接清除不可恢复。 使用勾选需要还原文件确认。 场景本地代码写乱放弃改动回到原始版本。Clean up... 清理修复 SVN 工作副本锁定报错。操作中途中断会出现working copy is locked。 使用项目根目录右键 Clean up勾选全部修复选项执行。 场景update、commit 报错提示工作副本锁定。Get lock... 获取锁对二进制文件图片、psd、word 文档加独占锁其他人不能提交该文件。 使用选中文件 Get lock填写备注。 场景无法合并的二进制资源防止多人同时编辑产生冲突。Release lock... 释放锁手动解除文件锁提交代码默认会自动释放锁。 使用文件右键 Release lock。 场景加锁之后放弃修改把权限还给其他同事。Branch/tag... 分支 / 标签SVN 分支和标签本质是远程仓库复制。trunk 主干开发branches 存放开发分支tags 存放发布版本。 使用填写远程新分支 URL填写提交日志创建。 场景开发新功能分支、版本发布打版本标签。Switch... 切换本地工作副本切换到其他分支 / 标签不需要重新 checkout。 使用填写目标分支远程 URL确认切换。 场景主干切到开发分支进行开发。Merge... 合并将其他分支的改动合并到当前本地工作副本。 使用先 switch 到目标分支填写源分支地址与版本范围执行合并。合并后需要本地测试再 commit。 场景功能分支开发完毕合并回主干代码。Export... 导出导出一份纯净文件包不带 SVN 隐藏.svn 元数据文件夹。 使用选择输出路径导出。 场景打包部署、交付客户代码包。Relocate... 重定位远程仓库地址变更本地工作副本重新绑定新地址不用重新检出。 ⚠️区分仓库物理迁移才用 Relocate切换分支用 Switch不要混淆。 场景Gitee 仓库改名、服务器域名更换。Add... 添加把本地新建文件加入 SVN 版本追踪标记蓝色加号还没有上传远程。 使用选中新增文件 Add之后执行 commit 才上传服务器。直接复制粘贴进文件夹不会自动纳入版本必须 Add。Copy URL to clipboard 复制 URL 到剪贴板一键复制当前文件对应的远程仓库地址。 场景发给同事用于 Repo‑browser 访问。Shelve... 搁置临时保存本地未提交修改工作副本恢复干净状态。 使用命名搁置补丁保存改动本地恢复干净。 场景正在写一半代码紧急处理别的 bug先把改动存起来。Unshelve... 取消搁置恢复之前 Shelve 搁置保存的本地修改。 场景bug 修复完成恢复之前未完成的代码。Create patch... 创建补丁把本地改动导出.patch补丁文件不提交仓库传递改动。 场景没有仓库提交权限把修改发给别人。Apply patch... 应用补丁把外部 patch 补丁应用到本地代码。Properties 属性配置 SVN 属性最常用svn:ignore配置忽略文件idea、target、日志文件不参与版本管理也可以配置外部引用 svn:externals。Settings 设置TortoiseSVN 全局配置。 常用清除保存账号令牌缓存、修改图标覆盖、配置对比工具、网络代理。Help 帮助官方帮助文档。About 关于查看 TortoiseSVN 版本号。日常高频操作SVN Update拉取远程最新代码多人协作修改前优先 updateSVN Commit提交本地修改到远程必须填写提交备注日志图标状态说明绿色对勾本地文件和远程版本一致红色感叹号本地修改未提交蓝色加号新增待提交文件黄色感叹号文件冲突冲突处理流程多人修改同一位置代码update 产生冲突生成.mine、.rxxx冲突文件。手动打开文件合并代码冲突文件右键 Resolve 标记冲突解决执行 commit 提交五、命令行 SVN 常用命令安装勾选 Command Line Tools 后 cmd 可直接执行# 检出仓库 svn checkout 仓库地址 本地目录 # 更新 svn update # 提交‑m填写注释 svn commit -m 完成登录模块开发 # 添加文件 svn add 文件名 # 查看日志 svn log # 撤销本地修改 svn revert 文件名六、常见问题踩坑汇总Import 导入后本地无法提交Import 只是上传文件本地不是工作副本。解决方案执行 Checkout 检出仓库。文件夹没有小乌龟图标TortoiseSVN 设置里面重置图标缓存重启电脑或者确认安装时勾选 shell 扩展。svn 检出报错 SSL 证书问题右键 TortoiseSVN 设置网络勾选忽略 SSL 证书校验。提交忘记写日志SVN 强制要求提交日志空备注无法提交写清楚修改记录方便追溯。七、SVN 和 Git 简单对比总结表格特性SVN(TortoiseSVN)Git架构集中式分布式存储中央仓库保存版本本地仅副本本地完整全量版本库大文件支持友好需要 LFS 辅助分支笨重轻量高效离线操作不能离线提交本地可提交Gitee 支持支持 SVN 地址原生支持结尾SVN 虽然不如 Git 流行但在文档管理、传统项目、部分企业内部系统仍然大量使用。TortoiseSVN 图形化操作降低了 SVN 使用门槛。区分 Import 导入和 Checkout 检出的区别避开新手高频坑点。本文环境Windows11、TortoiseSVN 最新版、Gitee 私有 / 公开仓库
