使用svn命令行也有一段时间了,刚开始时各种不适应,感觉比Git的命令行麻烦。用了一段时间后,顺手多了,但有时还是需要去查询相关指令,很费时间。所以今天在此做个总结,将一些常用的svn命令行记录下来,以便忘记查询时可以直接定位到。
1. checkout代码到本地####
svn checkout path
abbr: svn co
eg: svn checkout https://10.23.12.243/svn/userName
2. 更新代码####
svn update
abbr: svn up
//当前目录下所有文件更新到最新版本
eg: svn update
//更新test.js文件
eg: svn update test.js
3. 提交代码####
svn commit -m '修改了test.js' path (文件的当前路径)
abbr: svn ci
eg: svn ci -m '更改了test.js文件' /src/test.js
4. 添加文件####
//添加文件
svn add path
//添加当前目录下所有js文件
svn add *.js
//添加不在版本控制的文件(就是标注'?'的文件)
svn add file --force
//添加当前目录下所有不在版本控制的文件(eg:添加了许多张图片)
svn add * --force***执行完add操作后需要commit才行***
svn ci -m '提交xx文件'//一种不推荐的写法(将两个步骤合成一步)
svn add path -m '添加文件'
5. 删除文件####
svn delete file -m '删除文件file'
abbr: svn del/remove/rm
eg: svn delete test.js -m '删除test.js文件'
//推荐用法
svn delete test.js
svn ci -m '删除test.js文件'
6. 查看文件状态####
svn status
abbr: svn st/stat
//当前目录下文件的状态
eg: svn status
//查看单个文件的状态
eg:svn status path
:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定>
7. 查看日志####
//查看文件的所有修改记录,及其版本号的变化
svn log path
8. 比较差异####
//查看当前目录下所有文件与上个版本的差异
svn diff
//查看test.js文件的版本差异
svn diff /xx/test.js
//比较版本r1和版本r2下test.js的差异
svn diff -r r1:r2 test.js
9. 恢复本地修改
//恢复test.js文件中的修改
svn revert test.js
//恢复当前目录下所有改动
svn revert -R .
10. 回滚已提交代码####
这种情况下,用svn merge命令来进行回滚。
回滚的操作过程如下:
1、保证我们拿到的是最新代码:
svn update
假设最新版本号是28。
2、然后找出要回滚的确切版本号:
svn log [something]
假设根据svn log日志查出要回滚的版本号是25,此处的something可以是文件、目录或整个项目
如果想要更详细的了解情况,可以使用svn diff -r 28:25 [something]
3、回滚到版本号25:
svn merge -r 28:25 something
为了保险起见,再次确认回滚的结果:
svn diff [something]
发现正确无误,提交。
4、提交回滚:
svn commit -m "Revert revision from r28 to r25,because of ..."
提交后版本变成了29。
11.查询文件最近提交的改动####
1. 用svn info - 命令查询,其中
- 是要查询的文件,得到最近提交的Revision编号
svn info src/main.js
得到的结果中有这样一行:Last Changed Rev: 9003
2. 再用svn diff -c
-
svn diff -c 9003 src/main.js
就能查询到最近一次提交的改动
12.SVN 帮助####
//查看svn的所有指令以及简写
svn help
abbr: svn ?/h
以上就是在工作中经常使用到的一些SVN命令行,如果用到其它命令行,会继续添加。
参考链接:##### 【SVN|SVN 常用命令行】http://www.cnblogs.com/liwanggui/archive/2016/06/28/5624147.html
http://www.cnblogs.com/Venom/p/5863673.html
http://blog.csdn.net/yangzhongxuan/article/details/7018168