0%

小乌龟----Tortoise SVN

介绍

以下是百度的介绍:
SVN 是 subversion 的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理

SVN 也是有版本可以选择的,在 Windows 上的话就是小乌龟,这是这个客户端的别名,人家叫做”TortoiseSVN”,因为 Tortoise 是乌龟的意思,所以就叫做小乌龟了

看看它的图标

TortoiseSVN

安装

首先,和 git 一样需要先下载程序

前往官网下载小乌龟和对应版本的语言包(相信你一点不需要)

下载链接:版本根据需要自行选择

  • 英文链接
  • 中文链接

这个是命令行工具,默认是没有选中的,有需要的请自行选中

install_TortoiseSVN

然后疯狂下一步就好了

安装完后去桌面右键就多多出来这俩东西 👇

install_TortoiseSVN_1

或者 cmd 输入 svn

install_TortoiseSVN_2

这样就是安装完成了

使用

概念

  • repository(源代码库):源代码统一存放的地方
  • checkout(提取):当你手上没有源代码的时候,你需要从 repository checkout 一份
  • commit(提交):当你已经修改了代码,你就需要 commit 到 repository
  • update(更新):当你已经 checkout 了一份源代码,update 一下你就可以和 repository 上的源代码同步,你手上的代码就会有最新的变更

SVN 生命周期

  • 创建版本库:create 操作创建一个新的版本库,版本库用于存放文件,包括了每次修改的历史
  • 检出:checkout 操作从版本库创建一个工作副本,作为开发者私人的工作空间,可以进行内容的修改,然后提交到版本库中
  • 更新:update 操作更新版本库,将工作副本与版本库进行同步。因为版本库是整个团队共用的,当其他人提交了改动,你的工作副本就会过期
  • 执行变更:检出之后,可以进行添加、编辑、删除、重命名、移动文件/目录等变更操作。当最终执行了 commit 操作后,就对版本库进行了相应变更
  • 复查变化:当你对工作副本进行了一些修改后,你的工作副本就会比版本库新,在 commit 操作之前请使用 status/diff 操作复查下你的修改
  • 修复错误:如果你对工作副本做了许多修改,当时不想要这些修改了,revert 操作可以重置工作副本的修改,恢复到原始状态
  • 解决冲突:合并的时候可能发生冲突,使用 merge 操作进行合并。因为 SVN 合并是以行为单位的,只要不是修改的同一行,SVN 都会自动合并,如果是同一行,SVN 会提示冲突,需要手动进行确认修改,合并代码。其中 resolve 操作可以帮助找出冲突
  • 提交更改:将文件/目录添加到待变更列表,使用 commit 操作将更改从工作副本更新到版本库,提交是添加注释说明

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
svn help
svn --version 显示版本信息
svn --version --quiet     只显示版本号
svn checkout <地址>
svn add <文件或者文件夹>    增加本地数据到服务器
svn commit / svn ci -m "<注释>"  <文件名>   提交代码,要先 add 才 commit, 同 git
svn update / svn up  不必跟特定的文件或目录,也可以自己指定需要更新的文件或目录。每次 commit 或者改动之前最好更新一下。
svn log 日志
svn delete <文件名> 删除文件
svn resolve <路径> --accept working    解决冲突
svn switch <远程路径>    版本切换
svn list <路径> / svn ls    列出版本库下的文件和目录
svn merge -r m:n <路径>     合并文件,从版本号 m 到版本号 n 的远程分支都合并到当前分支中
svn info 确认工作目录的 svn 信息
svn diff -r m:n <路径>    对版本 m 和版本 n 比较差异
svn cleanup      为失败的失误清场
svn status -v    在本地进行代码修改,检查修改状态
svn import <远程路径> --message "message"    将当前路径下文件导入到版本库中
svn export <远程路径>    导出一份干净的项目
svn move/ svn mv <原文件名> <新文件名>     重命名,同 linux
svn mkdir <文件名> 创建文件夹
svn copy / svn cp <源文件路径> <新文件路径> copy
svn revert <文件名>      只能恢复未提交之前的操作

命令方式

Checkout 同步代码

在你需要保存代码的地方右键选择”SVN Chekout…”

填写仓库地址,例如:svn://svnbucket.com/nate/hello/trunk

点击确定就能同步代码到本地了

Update 更新代码

右键”SVN Update”就能更新到别人提交的代码了

Commit 提交代码

在提交代码前我们应该 update 下代码,这是个好习惯,可以避免覆盖别人代码和代码冲突

提交代码也很简单,右键”SVN Commit…”,填入提交描述,就可以把本地提交的代码提交到服务器了

忽略文件

有时候某些目录或者文件我们不想提交到 SVN 服务器,这时我们可以忽略这些文件

比如我们需要忽略 hello 这个目录,选中需要忽略的文件夹或者文件,右键,依次选择下面的菜单,就添加一条忽略了,recursively 表示递归忽略,会忽略掉这个目录下的所有东西

撤销本地修改

有时候本地修改了一些文件,但是突然又不需要了,想丢弃本地的修改回去 SVN 上最新的版本怎么操作呢?

右键选中需要撤销的文件,TortoiseSVN->Rever 就可以丢弃本地修改了

撤销已经提交的代码

已经提交到 SVN 仓库的代码发现改错了,还能后悔撤回吗?

TortoiseSVN ==> show log 查看提交记录

选择我们需要回去的版本,假设版本号 2 是我们的错误提交,这里选择提交 1,右键选择”Revert to this version”,这样就回去了版本号 1 的版本,版本号 2 的提交就被撤销了

最后你还需要 commit 一下撤销后的代码到 SVN 仓库,才是真正的丢弃了版本号 2 的提交

欢迎关注我的其它发布渠道