1首先介绍下svn的使用方式:
- 命令行工具,直接在终端写svn命令
- tortoiseSVN客户端,可视化工具
- idea svn插件
2 分别介绍每个命令都怎么用,有哪些要注意的地方
- 检出:checkout 服务器---》本地
注意:每个命令几乎都有一个缩写形式,检出就是co
svn co http://localhost/svn/tes11 [本地路径] --username xxx
- 导出:export 服务器--》本地 ,
区别于检出,这种就是下载到本地复制了一份,并且是不含有svn信息的,所以它不是一个svn仓库,导出到本地后,只是一个单纯的项目,不跟svn有任何关联
svn export http://localhost/svn/tes11 [本地路径] --username xxx
- 导入:import 本地--》服务器, 类似于idea 项目右击--subversion--share project
- 添加文件到svn服务器: add
只是添加到svn的一个准备工作,等要提交的文件都执行add后,再统一commit提交,
这感觉就像数据库事务一样,没有执行commit动作之前是没有任何实际意思,不管是对服务器,还是对数据库都是没有实质性改变的,
所以像增删改这类工作,往往会跟着一个commit,update等动作
-m "xxx" 注释是一定要写的,哪怕为空串也要写,这就是要求,规范,约束
svn add test.txt
svn commit test.txt -m ""
- 提交 commit ci
- 更新 update
svn update aaa.txt
- 删除文件 delete
svn delete test.txt
svn commit -m ""
- 加锁/解锁 lock unlock
svn lock tes2.txt -m ""
svn unlock test2.txt
- 比较文件差异 diff
本地和服务器最新版本作比较,或者指定要比较的版本号
svn diff test2.txt
svn diff -r 220:221 test2.txt
- 看文件状态 status st
关于这里可无网络时查看,查看的是本地和服务器上文件的状态
svn status -v
- 查看文件的提交日志信息 log
F:\ideaWork\xx-api>svn log pom.xml ------------------------------------------------------------------------ r2597 | aaiusx| 2020-01-02 17:57:12 +0800 (周四, 02 1月 2020) | 1 line ------------------------------------------------------------------------ r2594 | xiu.lj | 2020-01-02 17:15:03 +0800 (周四, 02 1月 2020) | 1 line 修改项目名 ------------------------------------------------------------------------ r2593 | Sen.Qi | 2020-01-02 17:12:05 +0800 (周四, 02 1月 2020) | 1 line
- 查看文件信息 info
svn info test2.txt
- 查看列表信息list
svn list http://xxx/svn/test
- 新建目录mkdir
svn mkdir xxx
svn update
- 恢复本地修改revert,本地回滚
svn revert [--recursive] test2.txt
- 拷贝一份到新的svn地址 switch,新地址不存在会自动创建
idea中的relocate,就类似这里的switch
svn switch 原地址 新地址
- 冲突解决 resolved
svn resolved xxx
svn update
- 直接查看svn上某个文件的内容 cat
svn cat test2.txt
- 复制一份 copy,感觉和switch结果上是一样的,新地址不存在会自动创建
svn copy 原地址 新地址