SVN快速上手教程
## 选择SVN客户端
###### TortoiseSVN
> 也叫乌龟SVN,Windows上最流行的SVN客户端,安装后你的右键就会多了几个SVN相关的菜单,非常方便
###### Eclipse插件
> 在Eclipse中集成SVN插件,适合使用Eclipse开发的用户,[查看使用教程](doc:62577890)
###### CornerStone
> Mac上最流行的SVN客户端之一,[查看使用教程](doc:72252322)
Versions:Mac上最流行的SVN客户端之一
==以下教程以TortoiseSVN为例==
如需视频教程,请访问:[视频教程](https://www.bilibili.com/video/av66292191/)
## Checkout同步代码
1. 项目详情-源码页面-复制SVN地址
2. 在你需要保存代码的地方右键选择“SVN Chekout...”
3. 填写仓库地址,填写保存目录,输入网站登录用户名密码。
4. 点击确定就能同步代码到本地了。
![1.gif](https://cos.easydoc.net/46901064/files/jxpm0lmx.gif)
> 如果你还没有代码仓库,你可以到[ SVNBucket ](https://svnbucket.com)注册一个。
## Update更新代码
右键 SVN Update 就能更新代码了
![2.gif](https://cos.easydoc.net/46901064/files/jxpm0tah.gif)
## Commit提交代码
提交代码也很简单,右键“SVN Commit...”,填入提交描述,就可以把本地提交的代码提交到服务器了。
>w 在提交代码前我们应该update下代码,这是个好习惯,可以避免覆盖别人的代码和代码冲突。
![3.gif](https://cos.easydoc.net/46901064/files/jxpm0ynx.gif)
## 忽略文件
有时候某些目录或者文件我们不想提交到 SVN 服务器,这时我们可以忽略这些文件。
下面演示忽略 temp 目录和 *.map 文件
![4.gif](https://cos.easydoc.net/46901064/files/jxpm140s.gif)
撤销忽略,文件的操作方式步骤是一样的,目录的有点不一样,请看下面演示
![5.gif](https://cos.easydoc.net/46901064/files/jxpm1a0t.gif)
## 撤销本地修改
有时候我们本地修改了一些文件,但是突然又不需要了,想丢弃本地的修改回去SVN上最新的版本怎么操作呢?
右键选中需要撤销的文件,TortoiseSVN->Rever就可以丢弃本地修改了。
![6.gif](https://cos.easydoc.net/46901064/files/jxpm1l0x.gif)
## 撤销已经提交的代码
已经提交到SVN仓库的代码发现改错了,还能后悔撤回吗?
1. TortoiseSVN==>show log查看提交记录
2. 选择我们需要回去的版本,右键选择"Revert to this version",这样就回去了指定的版本
3. 最后你还需要commit下撤销后的代码到SVN仓库
![7.gif](https://cos.easydoc.net/46901064/files/jxpm1px7.gif)
## SVN仓库目录和开发建议
我们建议每个仓库的根目录都创建trunk、branches、tags目录,这是经典的 SVN 目录结构,方便开发和维护
![8.jfif](https://cos.easydoc.net/46901064/files/jxpm6d1n.jfif)
> 个人比较喜欢的开发模式是,开发时都在trunk写代码,上线产品后就创建分支到branches目录,线上版本出问题了,我们应该在对应的分支上进行修复,并且把修复后的代码合并到主干上。
## 如何创建分支
以上面的目录结构为例子,我们从当前主干创建一个分支出去,表示1.0版本,操作步骤如下:
1. 右键trunk目录=>TortoiseSVN=>Branch/tag
2. 填写分支路径/branches/online1.0,填写注释,选择最用最新的版本开分支,如下:
![8.gif](https://cos.easydoc.net/46901064/files/jxpm1ww2.gif)
## 如何合并代码
假设我们在分支上修复了一个线上的BUG,需要把代码那个代码合并到主干来,操作步骤:
1. 在分支的跟目录点击show log
2. 选中需要合并过去主干的提交记录(可以多选)
3. 点击merge revision to ...
4. 选择主干的跟目录,点击确定,就合并过去了。
5. 在主干上提交这次合并的内容
![9.gif](https://cos.easydoc.net/46901064/files/jxpm2gav.gif)
SVN的这个指定提交记录合并功能非常的方便,我们日常中经常会遇到线上出问题需要修复,修复后把代码合并到主干的情况。
>w 你在分支上的什么目录点击合并,那就需要定位到主干的对应目录合并,不然会出错。
> 另外如果你有大量的代码需要合并或者不知道哪些提交记录需要合并,可以使用Beyond Compare来进行对比合并,也是非常方便的。
## 切换分支
右键TortoiseSVN=>Switch=>选择需要切换的分支,点击确定就可以了
## 修改仓库地址
如果您的仓库地址变了,是不是需要重新checkout一份代码呢?
快速更换:右键点击仓库根目录 => TortoiseSVN => relocate,修改仓库地址,点击确定后就修改好了
![SVN 重定向教程.gif](https://cos.easydoc.net/46901064/files/kxjv7641.gif)