SVN 常用命令行

使用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 <Item>命令查询,其中<Item>是要查询的文件,得到最近提交的Revision编号
svn info src/main.js
得到的结果中有这样一行:Last Changed Rev: 9003
2. 再用svn diff -c <Revision> <Item>
svn diff -c 9003 src/main.js
就能查询到最近一次提交的改动

12.SVN 帮助####

//查看svn的所有指令以及简写
svn help
abbr: svn ?/h

以上就是在工作中经常使用到的一些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

    原文作者:Daniel_颜世玉
    原文地址: https://www.jianshu.com/p/a4d6d4079157
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞