介绍
以下是百度的介绍:
SVN 是 subversion 的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理
SVN 也是有版本可以选择的,在 Windows 上的话就是小乌龟,这是这个客户端的别名,人家叫做”TortoiseSVN”,因为 Tortoise 是乌龟的意思,所以就叫做小乌龟了
看看它的图标
安装
首先,和 git 一样需要先下载程序
前往官网下载小乌龟和对应版本的语言包(相信你一点不需要)
下载链接:版本根据需要自行选择
- 英文链接
- 中文链接
这个是命令行工具,默认是没有选中的,有需要的请自行选中
然后疯狂下一步就好了
安装完后去桌面右键就多多出来这俩东西 👇
或者 cmd 输入 svn
这样就是安装完成了
使用
概念
- 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 | svn help |
命令方式
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 的提交