SVN 简介和安装
SVN是什么?
- 代码版本管理工具
- 它能记住你每次的修改
- 恢复到任何历史版本
- 恢复已经删除的文件
SVN跟Git相比,有什么优势?
- 使用简单,上手快
- 目录级权限控制,企业安全必备
- 子目录Checkout,减少不必要的文件检出
SVN 主要应用
- 开发人员用来做代码的版本管理
- 用来存储一些重要的文件,比如合同
- 公司内部文件共享,并且能按目录划分权限
SVN仓库
推荐:svnbuket.com,SVN桶
现在最好用的SVN服务
安装SVN客户端
TortoiseSVN ——Windows
Cornstone ——Mac
SVN 基本操作
- 检出 checkout
- 新增 add
- 提交 commit
- 更新 修改之后重新提交
- 历史记录
示例
(1)新建一个项目(仓库)
创建完成之后,选择右上角的地址,复制
(2)检出 checkout (从仓库中拿出来)
鼠标右键,选择 SVN checkout
输入用户名和密码(网站该仓库的名,和账号的密码)
ok之后
(3)创建几个文件提交上去 commit
右键,选择 SVN commit,选择要添加的文件,再添加提交信息
ok之后
在远端仓库刷新
还可以看到提交记录
(4)更新操作 修改之后重新提交
打开1.txt,添加”1234“,测试一下
选择右键,SVN commit
我们可以双击1.txt,可以看到变更的内容
选择ok后
网站上看到变更记录
(5)查看日志
这样我们就可以看到所有的提交记录了
SVN update 使用
在每次提交之前,我们可以使用右键,选择 SVN update,更新一下,避免冲突。
SVN 撤销和恢复
- 撤销本地修改
- 撤销已提交内容
- 恢复到指定版本
撤销本地修改
(1)例如 修改1.txt文件 添加了67
(2)已经保存了,退出来了。这是我们不想修改了。
右键,选择 乌龟SVN,选择 Revert
或者 在SVN 提交里面,选择1.txt,右键 SVN 还原
点击还原之后,选择要还原的文件,确定
撤销已提交内容
(1)先修改1.txt内容,提交上去
官网看见:
本地查看日志:(也可以看见)
选择错误的提交版本,右键选择红框
注意恢复之后,要重新提交
恢复到指定版本
本地查看日志:(也可以看见):选择要恢复的某个版本
注意恢复之后,要重新提交
SVN 添加忽略
(1)有些时候我们有些文件不想提交,可以选择忽略
现在重新提交,他会把那些文件都删除
(2)我们也可以在提交时,忽略
(3)现在我们不想忽略了,可以选择 从忽略列表中删除
现在就又可以提交了
SVN 解决冲突
- 什么情况容易发生冲突?
- 多个人修改了同个文件的同一行
- 无法进行合并的二进制文件
- 怎么避免冲突?
- 经常update同步下他人的代码
- 二进制文件不要多个人同时操作
- 冲突了怎么办?
选择 SVN update,发生冲突。
- 编辑冲突
- 使用他们的
- 使用我的
- 标记已解决
编辑冲突
分支
- 什么时候需要分支?
- 隔离线上版本和开发版本
- 大功能开发,不想影响到其他人,自己独立开个分支去开发
- SVN 经典目录结构
- trunk 主干
- branches
- tags
创建经典目录
(1)可以在创建项目时,直接选择创建
(2)也手动创建 3个目录
然后把那2个文件,放到trunk上,然后提交
这样目录结构就正确了
创建分支
修改路径等信息
更新 SVN update,就可以看到onlinev1.0
切换分支
代码暂存
- 有什么用?
- 代码改了很多,突然需要紧急修复一个bug,但是代码还没写完,不能提交
- 代码重构了很多,突然需要发布新版本,但是代码还跑不起来,不能提交。
这时就需要我们暂存。
取消暂存
复杂代码合并
-
情况
- 主干开发新功能,改了很多
- 分支是线上版本,修复了很多bug
-
两个分支的代码时间久了差异很大,无法直接分支合并或者指定提交记录合并代码
-
使用工具 BeyondCompare