杰瑞科技汇

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

TortoiseSVN 完整教程:从入门到精通

目录

  1. 第一部分:准备工作

    TortoiseSVN教程,新手如何快速上手?-图1
    (图片来源网络,侵删)
    • 1 什么是 SVN?
    • 2 什么是 TortoiseSVN?
    • 3 安装 TortoiseSVN
    • 4 配置用户名
    • 5 获取一个 SVN 仓库地址
  2. 第二部分:核心操作

    • 1 检出 - 第一次获取代码
    • 2 更新 - 获取最新代码
    • 3 添加 - 将新文件纳入版本控制
    • 4 修改与提交 - 保存你的更改
    • 5 查看差异 - 对比修改
    • 6 显示日志 - 查看历史记录
  3. 第三部分:进阶操作

    • 1 解决冲突 - 当你和别人修改了同一处代码
    • 2 还原 - 撤销本地修改
    • 3 删除 - 从版本控制中移除文件
    • 4 重命名/移动 - 修改文件名或移动位置
    • 5 创建分支与合并 - 实现并行开发
  4. 第四部分:最佳实践与技巧

    • 1 提交信息规范
    • 2 提交前务必更新
    • 3 善用 “显示日志”
    • 4 忽略文件

第一部分:准备工作

1 什么是 SVN?

SVN 是 Subversion 的缩写,它是一个开源的版本控制系统,你可以把它想象成一个“超级的文件备份系统”,但它远不止于此。

TortoiseSVN教程,新手如何快速上手?-图2
(图片来源网络,侵删)
  • 版本管理:记录每一次文件的修改,你可以随时查看、恢复到任何一个历史版本。
  • 协作开发:多人可以同时开发一个项目,SVN 会管理每个人的修改,确保代码不会丢失或被意外覆盖。
  • 历史追踪:每次提交代码时,都需要填写提交信息,清晰地记录了“谁在什么时间做了什么修改”。

2 什么是 TortoiseSVN?

TortoiseSVN 的中文意思是“乌龟 SVN”,它不是一个独立的软件,而是一个 Windows 的 Shell 扩展,这意味着它不提供自己的窗口,而是通过右键菜单来操作。

  • 优点
    • 直观易用:直接在文件资源管理器中右键即可完成所有操作。
    • 无缝集成:与 Windows 系统完美融合,无需切换到其他软件。
    • 可视化:用不同颜色的小图标(绿色、红色、蓝色等)直观地显示文件和文件夹的状态。

3 安装 TortoiseSVN

  1. 访问 TortoiseSVN 官方网站:https://tortoisesvn.net/
  2. 下载最新版本的 "TortoiseSVN 64-bit" 或 "32-bit"(根据你的系统选择)。
  3. 运行安装程序。重要:在安装过程中,会提示你安装 "Command line client tools",如果你需要在命令行中使用 SVN 命令(例如在 CI/CD 脚本中),请务必勾选它。
  4. 安装完成后,需要重启电脑才能使右键菜单生效。

4 配置用户名

在提交代码时,SVN 需要知道是谁提交的,你需要配置一个全局的用户名和邮箱。

  1. 在桌面空白处点击右键,选择 TortoiseSVN -> Settings...
  2. 在弹出的窗口中,找到左侧的 Saved Data -> Authentication data
  3. 点击右边的 Clear 按钮,清除可能存在的旧配置(如果有的话)。
  4. 然后回到左侧,选择 General -> Edit
  5. UsernamePassword 字段中填入你的 SVN 账号信息。注意:密码可以不填,每次提交时再输入,更安全,但用户名是必须的。

5 获取一个 SVN 仓库地址

你需要一个 SVN 仓库来练习,通常这个地址由你的团队或管理员提供,它看起来像这样:

  • http://svn.example.com/project/trunk
  • https://svn.yourcompany.com/finance
  • svn+ssh://user@svn.example.com/project

第二部分:核心操作

假设你已经准备好了一个 SVN 仓库地址。

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

1 检出 - 第一次获取代码

“检出”是指将 SVN 仓库中的代码完整地下载到你的本地电脑上。

  1. 在你的电脑上创建一个空的文件夹,用于存放项目代码(D:\MyProject)。
  2. 在该文件夹的空白处点击右键,选择 SVN Checkout...
  3. 在弹出的窗口中:
    • URL of repository:填入你的 SVN 仓库地址。
    • Checkout directory:确认本地路径是否正确。
    • Revision:默认是 Head revision(最新版本),直接使用即可。
  4. 点击 OK,TortoiseSVN 会开始下载文件,下载完成后,文件夹中的所有文件都会显示绿色对勾,表示文件已成功从仓库检出,并且是最新、干净的状态。

2 更新 - 获取最新代码

如果你的项目是多人协作的,在你开始修改之前,或者修改过程中,都应该先“更新”,以确保你本地的代码是最新版本,避免覆盖别人的修改。

  1. 在项目文件夹的空白处点击右键。
  2. 选择 SVN Update
  3. TortoiseSVN 会连接到服务器,下载自你上次更新以来的所有更改。
  4. 更新完成后,文件图标会相应变化(别人修改的文件会变成黄色感叹号)。

3 添加 - 将新文件纳入版本控制

当你创建了新的文件或文件夹,并且希望 SVN 来管理它们时,就需要执行“添加”操作。

  1. 在文件资源管理器中,像平常一样创建新文件或新文件夹。
  2. 在新创建的文件/文件夹上点击右键。
  3. 选择 TortoiseSVN -> Add...
  4. 在弹出的窗口中,选择要添加的文件,然后点击 OK。
  5. 文件图标会变成蓝色加号,表示这个文件已经被标记为“添加”,但还未真正提交到服务器。

4 修改与提交 - 保存你的更改

这是最核心的日常操作流程。

  1. 修改文件:像平常一样打开并编辑你的文件。
  2. 查看修改:修改后,你会发现文件的图标变成了红色感叹号,表示该文件被修改了。
  3. 提交更改
    • 在项目文件夹的空白处点击右键,选择 SVN Commit...
    • 在弹出的窗口中,上半部分会显示所有被修改或被添加的文件。
    • 在下方的 "Log message" 文本框中,清晰、简洁地描述你这次修改的内容。"修复了登录按钮无法点击的 Bug"。
    • 确认无误后,点击 OK。
  4. 提交成功后,文件的图标会变回绿色对勾,表示你的本地代码和服务器上的代码已经同步。

5 查看差异 - 对比修改

在提交之前,你可能想看看自己到底改了什么。

  1. 在项目文件夹空白处右键,选择 SVN Diff
  2. TortoiseSVN 会打开一个窗口,以统一格式显示你的修改,增加的行用绿色背景,删除的行用红色背景,非常直观。
  3. 你也可以右键点击单个文件,选择 TortoiseSVN -> Diff 来查看单个文件的修改。

6 显示日志 - 查看历史记录

如果你想查看一个文件或整个项目的提交历史。

  1. 右键点击一个文件或项目文件夹,选择 TortoiseSVN -> Show Log
  2. 会弹出一个日志窗口,按时间倒序列出了所有的提交记录。
  3. 你可以:
    • 查看详情:双击某一条记录,可以看到这次提交的具体修改内容。
    • 获取旧版本:选中某条记录,右键选择 Update to revision,可以将整个项目或单个文件回滚到那个历史版本。
    • 比较版本:选中两个不同的版本,右键选择 Compare revisions,可以查看这两个版本之间的所有差异。

第三部分:进阶操作

1 解决冲突 - 当你和别人修改了同一处代码

这是协作开发中最常见的问题,当两个人同时修改了同一个文件的同一行代码,并且先后提交时,后提交的人就会遇到冲突。

  1. 冲突发生:当你执行 SVN Update 时,如果发生冲突,TortoiseSVN 会提示你,并且冲突的文件图标会变成红色感叹号和黄色感叹号叠加
  2. 手动解决冲突
    • 双击冲突的文件,TortoiseSVN 会打开一个冲突解决工具
    • 工具通常会分为四个部分:
      • Mine:你自己的修改。
      • Theirs:别人的修改(服务器上的最新版本)。
      • Merged:合并后的结果,你需要在这里手动编辑,保留正确的代码。
      • Original:文件在你修改前的原始版本。
    • 仔细分析,在 "Merged" 区域保留正确的代码,删除多余的代码。
  3. 标记冲突已解决
    • 保存 "Merged" 文件。
    • 在该文件上右键,选择 TortoiseSVN -> Resolve...
    • 这时,文件图标会变成黄色感叹号,表示冲突已解决,但文件还未提交。
  4. 提交解决:像正常一样执行 SVN Commit,将解决冲突后的版本提交到服务器。

2 还原 - 撤销本地修改

如果你不小心修改了文件,想恢复到修改前的状态(即服务器上的版本)。

  1. 在修改过的文件上右键。
  2. 选择 TortoiseSVN -> Revert...
  3. 在确认窗口中点击 OK,TortoiseSVN 会丢弃你所有的本地修改,文件恢复到检出时的状态,图标变回绿色对勾。

注意Revert 操作是不可逆的,请谨慎使用。

3 删除 - 从版本控制中移除文件

如果你想从 SVN 中删除一个文件。

  1. 错误做法:直接在 Windows 中删除文件,这只会从你的电脑上删除,服务器上仍然存在。
  2. 正确做法
    • 在要删除的文件上右键。
    • 选择 TortoiseSVN -> Delete
    • 在提交窗口中,填写删除原因,"删除了过时的配置文件"。
    • 提交后,文件会在服务器上被标记为删除,你的本地文件也会被删除。

4 重命名/移动 - 修改文件名或移动位置

SVN 能很好地处理文件和文件夹的移动和重命名,它会跟踪这种操作,而不是简单地删除再添加。

  1. 在要重命名/移动的文件/文件夹上右键。
  2. 选择 TortoiseSVN -> Rename... (重命名) 或 SVN Move to... (移动)。
  3. 输入新的名称或目标路径。
  4. 提交你的更改,提交信息可以写 "重命名了 README 文件为 README.md"。

5 创建分支与合并 - 实现并行开发

分支是独立于主开发线的一条平行线,通常用于:

  • 开发新功能
  • 修复紧急 Bug
  • 进行实验性开发

主开发线通常被称为 trunk

  1. 创建分支

    • 右键点击项目文件夹,选择 TortoiseSVN -> Branch/Tag...
    • URL to copy from:通常是 trunk 的地址。
    • To path:输入分支的地址,通常是在 branches 目录下,http://svn.example.com/project/branches/my-new-feature
    • 点击 OK,一个新的分支就创建好了。
  2. 在分支上工作

    • 像检出 trunk 一样,将新创建的分支 Checkout 到你的本地。
    • 在这个本地副本上进行开发、提交,这些操作不会影响 trunk
  3. 合并分支

    • 当新功能开发完成,需要合并回 trunk 时,切换到你的 trunk 本地工作副本。
    • 右键点击项目文件夹,选择 Merge
    • Merge a range of revisions:选择此项,用于合并一个分支上的一系列提交。
      • From URL:填写你的分支地址(branches/my-new-feature)。
      • From/To revision:通常选择 "Head revision"。
      • 点击 Next。
    • Merge two different trees:选择此项,用于合并两个不同路径(如 branchtrunk)的差异。
      • From URL:分支地址。
      • To URLtrunk 地址。
      • 点击 Next。
    • TortoiseSVN 会开始计算差异并尝试自动合并,解决可能出现的冲突。
    • 合并完成后,检查代码是否正确,然后提交 trunk,提交信息可以是 "合并了新功能分支 my-new-feature 到 trunk"。

第四部分:最佳实践与技巧

1 提交信息规范

一个好的提交信息能让项目历史一目了然。

  • 清晰简洁:用一句话概括修改内容。
  • 使用祈使句:"Fix login bug",而不是 "Fixed login bug"。
  • 关联问题号:如果你们使用 JIRA、Redmine 等工具,可以在提交信息中附上问题号,"Fix login button issue #123"。

2 提交前务必更新

这是最重要的习惯! 在你点击 Commit 之前,一定要先执行 Update,这样可以:

  • 及早发现冲突,而不是在提交时才发现。
  • 确保你的代码是基于最新版本开发的,避免覆盖别人的劳动成果。

3 善用 “显示日志”

Show Log 是你最强大的工具之一,在不确定怎么操作时,用它来查看历史,能给你很多启发。

4 忽略文件

有些文件不需要纳入版本控制,

  • 编译产生的文件(.o, .exe, .dll, .class
  • IDE 的配置文件(.project, .settings
  • 操作系统生成的文件(Thumbs.db, Desktop.ini
  • 本地的配置文件(config.local.ini

你可以设置 SVN 忽略这些文件。

  1. 在项目文件夹上右键,选择 TortoiseSVN -> Add to ignore list
  2. 你可以选择:
    • Name:忽略单个文件名。
    • Extension:忽略某种扩展名的所有文件(*.obj)。
    • 打开高级设置,可以输入通配符,build/ 来忽略整个 build 目录。
分享:
扫描分享到社交APP
上一篇
下一篇