TortoiseSVN 完整新手教程
TortoiseSVN 是一款非常流行的 Subversion (SVN) 版本控制系统的图形化客户端,它直接集成到 Windows 的资源管理器中,让你无需打开命令行,仅通过鼠标右键就能完成所有的版本控制操作。

什么是 SVN?
在开始之前,简单了解一下 SVN:
- 版本控制系统:就像一个“时光机”,可以记录文件的每一次修改历史。
- 核心概念:
- 仓库:一个中心服务器,存放着所有项目的文件和所有历史版本,开发者从这里检出代码,修改后再提交回来。
- 检出:从仓库下载一份最新(或指定版本)的项目副本到你的本地电脑。
- 提交:把你本地修改的文件上传到仓库,并附上修改说明。
- 更新:从仓库获取最新的代码,同步到你本地,避免和别人的修改冲突。
- 冲突:当你和他人修改了同一个文件的同一行时, SVN 无法自动合并,需要你手动解决。
安装 TortoiseSVN
- 下载:访问 TortoiseSVN 官方网站 https://tortoisesvn.net/。
- 选择版本:下载最新稳定版,通常选择
64-bit或32-bit,取决于你的 Windows 系统。 - 安装:双击下载的安装包(
TortoiseSVN-1.14.5.29832-x64-svn-1.14.5.msi)。- 重要:在安装过程中,有一个关键步骤是选择 "command line client tools",这会安装
svn.exe命令行工具,虽然我们主要用图形界面,但有时会用到。 - 其他选项保持默认即可,一路点击 "Next" 直到安装完成。
- 重要:在安装过程中,有一个关键步骤是选择 "command line client tools",这会安装
- 重启:安装完成后,根据提示重启电脑。
界面初识
安装成功后,你会发现你的 Windows 资源管理器(文件浏览器)发生了变化:
- 所有文件夹 的右键菜单中都会出现 TortoiseSVN 选项。
- 已受 SVN 管理的文件夹(我们称之为“工作副本”)图标上会出现 小绿勾 或 小红叉,直观地显示文件状态。
图标含义:
- 绿勾:文件已更新到最新,并且你的本地修改已经提交。
- 红叉:文件有冲突,需要你手动解决。
- 蓝色问号:文件是新增的,还未被 SVN 追踪,或者文件已被删除但未提交。
- 黄色感叹号:文件已被修改,但还未提交。
- 锁头图标:文件被锁定(防止他人修改)。
核心工作流程
下面我们通过一个完整的例子来学习 SVN 的使用,假设我们要加入一个新项目。

场景:一个团队共同开发一个网站项目,项目代码存放在 SVN 仓库 https://svn.mycompany.com/website。
步骤 1:检出 - 第一次获取代码
这是你开始工作的第一步。
-
在电脑上选择一个空文件夹(
D:\MyProjects),右键点击,选择 TortoiseSVN -> Checkout...。 -
在弹出的窗口中:
(图片来源网络,侵删)- URL of repository:输入 SVN 仓库的地址,
https://svn.mycompany.com/website。 - Checkout directory:确认本地要存放代码的路径,通常是当前你选中的文件夹。
- Revision:通常选择 Head revision(最新版本)。
- 点击 OK。
- URL of repository:输入 SVN 仓库的地址,
-
系统会提示你输入用户名和密码,输入你在 SVN 仓库的账号信息,勾选 Save authentication(保存认证信息)以便下次使用。
-
TortoiseSVN 会从仓库下载所有文件到你的本地,下载完成后,这个文件夹就会出现 绿勾,表示它是一个干净的工作副本。
步骤 2:修改和提交
现在你可以在本地修改代码了。
-
用你喜欢的编辑器打开
index.html文件,修改一些内容。 -
保存文件后,回到
index.html所在的文件夹,你会发现它的图标变成了 黄色感叹号!这表示 SVN 检测到这个文件被修改了。 -
右键点击这个文件夹(或者直接右键点击那个感叹号的文件),选择 TortoiseSVN -> Commit...。
-
在提交窗口中:
- Commit message:必须填写!这是对本次修改的说明,非常重要,写清楚你改了什么,"修改了首页标题,增加了欢迎语"。
- Files to commit:窗口会列出所有被修改或新增的文件,你可以勾选或取消勾选,通常全选即可。
- 点击 OK。
-
提交成功后,文件夹的图标会变回 绿勾,你的修改已经成功上传到仓库,其他成员可以通过更新来看到你的改动。
步骤 3:更新 - 获取他人修改
在你工作的同时,你的同事可能也提交了新的代码,为了避免冲突,在开始新工作前,最好先更新一下。
- 右键点击你的项目文件夹,选择 TortoiseSVN -> Update。
- TortoiseSVN 会连接仓库,将最新的代码下载并合并到你的本地,如果没有冲突,过程会很快,完成后图标依然是绿勾。
- 养成好习惯:修改前先更新,提交前再更新一次,可以最大程度地减少冲突。
步骤 4:解决冲突
冲突是协作开发中不可避免的情况。
冲突发生场景:
- 你从仓库 检出/更新 了一个文件。
- 你修改了这个文件的第10行。
- 在你提交之前,另一位同事也修改了同一个文件的第10行,并且已经成功提交。
- 当你尝试提交时,SVN 会发现冲突,并阻止你提交。
解决冲突的步骤:
- 尝试更新:当你提交失败时,先尝试 Update,TortoiseSVN 会告诉你哪些文件有冲突,并把冲突的文件标记出来。
- 查看冲突文件:打开有冲突的文件(
index.html),你会看到一些特殊的标记,通常是<<<<<<< .mine、、>>>>>>> r123这样的分隔符。<<<<<<< .mine和 之间是你的修改。- 和
>>>>>>> r123之间是仓库中别人的修改(r123是版本号)。 - 你的任务就是手动编辑这个文件,保留你需要的代码,也保留别人需要的代码,删除这些冲突标记。
- 标记冲突已解决:
- 保存修改后的文件。
- 右键点击这个文件,选择 TortoiseSVN -> Resolve...。
- 在弹出的窗口中,确保选择了 "Marked as resolved",然后点击 OK。
- 再次提交:现在冲突已经解决,文件图标会变回 黄色感叹号,再次右键点击文件夹,选择 Commit...,你的修改就可以成功提交了。
其他常用操作
添加新文件/文件夹
- 在你的项目文件夹中创建一个新的文件或文件夹。
- 新建的东西会显示 蓝色问号。
- 右键点击它,选择 TortoiseSVN -> Add...。
- 在弹出的窗口中确认添加,然后点击 OK,此时它仍然是问号,因为只是“计划添加”。
- 必须进行一次 Commit,新文件/文件夹才会真正上传到仓库。
删除文件/文件夹
- 右键点击要删除的文件/文件夹,选择 TortoiseSVN -> Delete。
- 它会立即被标记为删除(图标变化),但不会从硬盘上删除。
- 必须进行一次 Commit,删除操作才会生效,其他成员更新后就看不到了。
查看历史和差异
- 查看日志:右键点击文件或文件夹,选择 Show Log,你可以看到所有的提交记录,包括谁、在什么时候、提交了什么,双击某次提交,可以查看那个版本的文件。
- 比较差异:
- 比较本地与仓库:右键点击一个修改过的文件(有感叹号的),选择 Diff,会弹出一个窗口,左边是你的本地修改,右边是仓库中的原始版本。
- 比较两个版本:在 Show Log 窗口中,选中两个提交记录,右键点击,选择 Compare revisions,可以清晰地看出两个版本之间所有文件的差异。
创建分支和标签
这是 SVN 的进阶功能,用于版本管理。
- 分支:用于开发新功能或修复 Bug,不会影响主分支,为“用户登录功能”创建一个分支。
- 右键点击项目文件夹,选择 TortoiseSVN -> Branch/Tag...。
- To URL: 输入新分支的地址,
https://svn.mycompany.com/website/branches/user-login。 - Log message: 填写创建分支的原因,"为开发用户登录功能创建分支"。
- 点击 OK。
- 用于给某个稳定的版本(如 V1.0)打上一个快照标记。
- 操作和创建分支类似,只是 To URL 的路径通常是
tags目录,https://svn.mycompany.com/website/tags/v1.0。
- 操作和创建分支类似,只是 To URL 的路径通常是
最佳实践
- 写好 Commit Message:清晰、简洁地描述你的修改。
- 频繁更新和提交:不要在本地憋大招,改一点就提交一点,这样既能减少冲突,也能保留更细粒度的历史记录。
- 提交前先更新:确保你提交的是基于最新代码的修改。
- 不要提交无关文件:像
*.log、*.tmp、编译生成的文件(如.obj,.exe)等,应该被忽略,可以通过 TortoiseSVN -> Add to ignore list 来设置。 - 善用日志:遇到问题,先看 Show Log,了解修改历史。
常见问题
-
Q: 提交时提示 "Aborting commit: '.' remains out of date."
- A: 这表示在你提交之前,别人已经提交了新的修改,导致你的本地代码不是最新的,你需要先 Update,然后再提交。
-
Q: 忘记了密码怎么办?
- A: 在 Show Log 窗口,点击左下角的 Settings,找到 Saved Data,可以清除保存的认证信息。
-
Q: 如何撤销本地未提交的修改?
- A: 右键点击文件,选择 Revert,这会把文件恢复到上一次更新时的状态,慎用!
希望这份详细的教程能帮助你快速上手 TortoiseSVN!祝你编码愉快!
