杰瑞科技汇

TortoiseSVN教程,新手如何快速上手?

TortoiseSVN 完整新手教程

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

TortoiseSVN教程,新手如何快速上手?-图1
(图片来源网络,侵删)

什么是 SVN?

在开始之前,简单了解一下 SVN:

  • 版本控制系统:就像一个“时光机”,可以记录文件的每一次修改历史。
  • 核心概念
    • 仓库:一个中心服务器,存放着所有项目的文件和所有历史版本,开发者从这里检出代码,修改后再提交回来。
    • 检出:从仓库下载一份最新(或指定版本)的项目副本到你的本地电脑。
    • 提交:把你本地修改的文件上传到仓库,并附上修改说明。
    • 更新:从仓库获取最新的代码,同步到你本地,避免和别人的修改冲突。
    • 冲突:当你和他人修改了同一个文件的同一行时, SVN 无法自动合并,需要你手动解决。

安装 TortoiseSVN

  1. 下载:访问 TortoiseSVN 官方网站 https://tortoisesvn.net/
  2. 选择版本:下载最新稳定版,通常选择 64-bit32-bit,取决于你的 Windows 系统。
  3. 安装:双击下载的安装包(TortoiseSVN-1.14.5.29832-x64-svn-1.14.5.msi)。
    • 重要:在安装过程中,有一个关键步骤是选择 "command line client tools",这会安装 svn.exe 命令行工具,虽然我们主要用图形界面,但有时会用到。
    • 其他选项保持默认即可,一路点击 "Next" 直到安装完成。
  4. 重启:安装完成后,根据提示重启电脑。

界面初识

安装成功后,你会发现你的 Windows 资源管理器(文件浏览器)发生了变化:

  • 所有文件夹 的右键菜单中都会出现 TortoiseSVN 选项。
  • 已受 SVN 管理的文件夹(我们称之为“工作副本”)图标上会出现 小绿勾小红叉,直观地显示文件状态。

图标含义

  • 绿勾:文件已更新到最新,并且你的本地修改已经提交。
  • 红叉:文件有冲突,需要你手动解决。
  • 蓝色问号:文件是新增的,还未被 SVN 追踪,或者文件已被删除但未提交。
  • 黄色感叹号:文件已被修改,但还未提交。
  • 锁头图标:文件被锁定(防止他人修改)。

核心工作流程

下面我们通过一个完整的例子来学习 SVN 的使用,假设我们要加入一个新项目。

TortoiseSVN教程,新手如何快速上手?-图2
(图片来源网络,侵删)

场景:一个团队共同开发一个网站项目,项目代码存放在 SVN 仓库 https://svn.mycompany.com/website

步骤 1:检出 - 第一次获取代码

这是你开始工作的第一步。

  1. 在电脑上选择一个空文件夹(D:\MyProjects),右键点击,选择 TortoiseSVN -> Checkout...

  2. 在弹出的窗口中:

    TortoiseSVN教程,新手如何快速上手?-图3
    (图片来源网络,侵删)
    • URL of repository:输入 SVN 仓库的地址,https://svn.mycompany.com/website
    • Checkout directory:确认本地要存放代码的路径,通常是当前你选中的文件夹。
    • Revision:通常选择 Head revision(最新版本)。
    • 点击 OK
  3. 系统会提示你输入用户名和密码,输入你在 SVN 仓库的账号信息,勾选 Save authentication(保存认证信息)以便下次使用。

  4. TortoiseSVN 会从仓库下载所有文件到你的本地,下载完成后,这个文件夹就会出现 绿勾,表示它是一个干净的工作副本。

步骤 2:修改和提交

现在你可以在本地修改代码了。

  1. 用你喜欢的编辑器打开 index.html 文件,修改一些内容。

  2. 保存文件后,回到 index.html 所在的文件夹,你会发现它的图标变成了 黄色感叹号!这表示 SVN 检测到这个文件被修改了。

  3. 右键点击这个文件夹(或者直接右键点击那个感叹号的文件),选择 TortoiseSVN -> Commit...

  4. 在提交窗口中:

    • Commit message必须填写!这是对本次修改的说明,非常重要,写清楚你改了什么,"修改了首页标题,增加了欢迎语"。
    • Files to commit:窗口会列出所有被修改或新增的文件,你可以勾选或取消勾选,通常全选即可。
    • 点击 OK
  5. 提交成功后,文件夹的图标会变回 绿勾,你的修改已经成功上传到仓库,其他成员可以通过更新来看到你的改动。

步骤 3:更新 - 获取他人修改

在你工作的同时,你的同事可能也提交了新的代码,为了避免冲突,在开始新工作前,最好先更新一下。

  1. 右键点击你的项目文件夹,选择 TortoiseSVN -> Update
  2. TortoiseSVN 会连接仓库,将最新的代码下载并合并到你的本地,如果没有冲突,过程会很快,完成后图标依然是绿勾。
  3. 养成好习惯修改前先更新,提交前再更新一次,可以最大程度地减少冲突。

步骤 4:解决冲突

冲突是协作开发中不可避免的情况。

冲突发生场景

  • 你从仓库 检出/更新 了一个文件。
  • 你修改了这个文件的第10行。
  • 在你提交之前,另一位同事也修改了同一个文件的第10行,并且已经成功提交
  • 当你尝试提交时,SVN 会发现冲突,并阻止你提交。

解决冲突的步骤

  1. 尝试更新:当你提交失败时,先尝试 Update,TortoiseSVN 会告诉你哪些文件有冲突,并把冲突的文件标记出来。
  2. 查看冲突文件:打开有冲突的文件(index.html),你会看到一些特殊的标记,通常是 <<<<<<< .mine、、>>>>>>> r123 这样的分隔符。
    • <<<<<<< .mine 和 之间是你的修改。
    • >>>>>>> r123 之间是仓库中别人的修改(r123 是版本号)。
    • 你的任务就是手动编辑这个文件,保留你需要的代码,也保留别人需要的代码,删除这些冲突标记。
  3. 标记冲突已解决
    • 保存修改后的文件。
    • 右键点击这个文件,选择 TortoiseSVN -> Resolve...
    • 在弹出的窗口中,确保选择了 "Marked as resolved",然后点击 OK
  4. 再次提交:现在冲突已经解决,文件图标会变回 黄色感叹号,再次右键点击文件夹,选择 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

最佳实践

  1. 写好 Commit Message:清晰、简洁地描述你的修改。
  2. 频繁更新和提交:不要在本地憋大招,改一点就提交一点,这样既能减少冲突,也能保留更细粒度的历史记录。
  3. 提交前先更新:确保你提交的是基于最新代码的修改。
  4. 不要提交无关文件:像 *.log*.tmp、编译生成的文件(如 .obj, .exe)等,应该被忽略,可以通过 TortoiseSVN -> Add to ignore list 来设置。
  5. 善用日志:遇到问题,先看 Show Log,了解修改历史。

常见问题

  • Q: 提交时提示 "Aborting commit: '.' remains out of date."

    • A: 这表示在你提交之前,别人已经提交了新的修改,导致你的本地代码不是最新的,你需要先 Update,然后再提交。
  • Q: 忘记了密码怎么办?

    • A: 在 Show Log 窗口,点击左下角的 Settings,找到 Saved Data,可以清除保存的认证信息。
  • Q: 如何撤销本地未提交的修改?

    • A: 右键点击文件,选择 Revert,这会把文件恢复到上一次更新时的状态,慎用!

希望这份详细的教程能帮助你快速上手 TortoiseSVN!祝你编码愉快!

分享:
扫描分享到社交APP
上一篇
下一篇