1. 检出
svn checkout(co) svn地址(http或者svn协议) [本地目录] --username 用户名 [--password 密码]
注:如果不带--password 参数传输密码的话,会提示输入密码,建议不要用明文的--password 选项。
不指定本地目录,则检出到当前目录下。
例如:
svn checkout https://blog.wanxiaohong.cn/project /project --username suvan
2. 导出( 导出一个干净的不带.svn文件夹的目录树 )
svn export [-r 版本号] svn地址(http或者svn协议) [本地目录] --username 用户名
svn export 本地检出的(即带有.svn文件夹的)目录 要导出的本地目录
注:第一种从版本库导出干净工作目录树的形式是指定URL,如果指定了修订版本号,会导出相应的版本,如果没有指定修订版本,则会导出最新的,导出到指定位置。如果省略本地目录,URL的最后一部分会作为本地目录的名字。
第二种形式是指定本地检出的目录,所有的本地修改将会保留,但是不在版本控制下(即没提交的新文件,因为.svn文件夹里没有与之相关的信息记录)的文件不会拷贝。
例如:
svn export -r 168 https://blog.wanxiaohong.cn/project /project --username suvan
svn export /project /newproject
3. 添加新文件
svn add 文件名
#告知SVN服务器要添加文件了,然后提交文件
svn commint(ci) -m '增加新文件'
例如:
svn add new.file
svn commit -m '增加新文件'
svn add *.file #添加当前目录下所有的.file文件
svn commit -m '增加新文件'
4. 提交
svn commit(ci) -m "提交的备注" [-N] [--no-unlock] 文件名
必须带上-m参数,参数可以为空,但是必须写上-m
例如:
svn commit -m "提交当前目录下的全部在版本控制下的文件"
svn commit -m "提交suvan.file" suvan.file
svn commit -m "提交suvan.file" -N --no-unlock test.php #保持锁用–no-unlock开关
5. 更新文件
svn update
#在已被版本控制的目录中执行
例如:
svn update #默认将当前目录以及子目录下的所有文件都更新到最新版本
svn update -r 200 suvan.file #将本地版本库中的suvan.file还原到200版本(revision)
svn update suvan.file 更新到与服务器版本库相同版本。
#提交的时候若提示冲突,需先 update 修改文件,然后svn resolved,最后再提交commit。
6. 删除文件
svn delete(del, remove, rm) svn地址(http或者svn协议) -m "删除备注信息文本"
或
svn delete /本地文件
svn ci -m
例如:
svn delete https://blog.wanxiaohong.cn/suvan.file -m "删除suvan.file"
或
svn delete suvan.file && svn commit -m '删除suvan.file'
7. 加锁/解锁
svn lock -m "加锁备注信息" [--force] 文件名
svn unlock
例如:
svn lock -m "加锁suvan.file" suvan.file
svn unlock suvan.file
8. 比较差异
svn diff 文件名
例如:
svn diff suvan.file #将修改的文件与基础版本比较
svn diff -r 200:201 suvan.file #对版本号200和版本号201 比较差异
9. 查看文件或者目录状态
svn status(stat, st) 目录路径
【?:不在svn的控制中; M:内容被修改;C:发生冲突;】
svn status -v
【第一列:当前版本号,第二列:修改后的版本号,第三列:修改人,第四列:修改的目录或文件】
注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可执行
10. 查看日志
svn log 文件名
可以指定多个 “-c” 或 “-r” 选项 (但是不允许同时使用 “-c” 和 “-r” 选项),以及混合使用前向和后向范围。
使用 -v 时,在日志信息中显示受影响的路径名。
使用 -q 时,不显示日志信息主体 (请注意,它可与 -v 并存)。
每条日志信息只会显示一次,即使指定了此版本涉及到的多个路径。默认日志信息会追溯复制历史;使用 –stop-on-copy 可以关闭这种行为,这可以用来找出分支点。
有效选项:
-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范围)
版本参数可以是如下之一:
NUMBER 版本号
'{'DATE'} ' 在指定时间以后的版本
' HEAD ' 版本库中的最新版本
' BASE ' 工作副本的基线版本
' COMMITTED ' 最后提交或基线之前
' PREV ' COMMITTED的前一版本
-q [--quiet] : 不打印信息,或只打印概要信息
-v [--verbose] : 打印附加信息
-g [--use-merge-history] : 从合并历史使用/显示额外信息
-c [--change] ARG : 版本 ARG 引起的改变
–targets ARG : 传递文件 ARG 内容为附件参数
–stop-on-copy : 查看历史不要跨越不同的副本
–incremental : 给予适合串联的输出
–xml : 输出为 XML
-l [--limit] ARG : 日值项最大值
–with-all-revprops : 获取所有版本属性
–with-no-revprops : 没有找回版本属性
–with-revprop ARG : 获取版本属性 ARG
全局选项:
–username ARG : 指定用户名称 ARG
–password ARG : 指定密码 ARG
–no-auth-cache : 不要缓存用户认证令牌
–non-interactive : 不要交互提示
–trust-server-cert : 不提示的接受未知的 SSL 服务器证书(只用于选项 “–non-interactive”)
–config-dir ARG : 从目录 ARG 读取用户配置文件
–config-option ARG : 以下属格式设置用户配置选项:FILE:SECTION:OPTION=[VALUE]
例如:
svn log #显示所有版本commit的日志信息:版本、作者、日期、comment。
svn log -r 4:20 #只看版本4到版本20的日志信息,顺序显示。
svn log -r 20:5 #显示版本20到4之间的日志信息,逆序显示。
svn log suvan.file #查看文件suvan.file的日志修改信息。
svn log -r 8 -v #显示版本8的详细修改日志,包括修改的所有文件列表信息。
svn log -r 8 -v -q #显示版本8的详细提交日志,不包括comment。
svn log -v -r 88:866 #显示从版本88到版本866之间,当前代码目录下所有变更的详细信息 。
svn log -v dir #查看目录的日志修改信息,需要加v。
svn log https://blog.wanxiaohong.cn/project #显示代码目录的日志信息。
svn log /project -v -l3 #查看最近3个版本日志
svn log -r 18 > suvan.log #将版本18的日志放入文件
或
svn log –incremental -r 18 > suvan.log
11. 查看文件详细信息
svn info 文件名
例如:
svn info suvan.file
12. SVN 帮助
svn help 全部功能选项
13. 查看版本库下的文件和目录列表
svn list svn地址(http或者svn协议)
或
svn list svn本地版本库目录
例如:
svn list /project
14. 版本库中创建新目录
svn mkdir 目录名
例如:
svn mkdir suvan
#创建完之后再提交一下,svn commit -m '新建目录suvan'
15. 恢复本地修改
svn revert [--recursive] 文件名
#该命令不会存取网络,并且会解除冲突的状况。但是它不会恢复被删除的目录。
例如:
svn revert suvan.file
放弃对suvan.file
的修改
16. 把工作拷贝更新到别的URL
svn switch(sw) svn地址(http或者svn协议) 本地目录
例如:
svn switch https://blog.wanxiaohong.cn/newproject ./
#当前所在目录分支到https://blog.wanxiaohong.cn/newproject
17. 解决冲突
svn resolved [本地目录]
例如:
svn update
C suvan.file
Updated to revision 31.
如果更新时发生冲突,我们的工作拷贝会产生三个新的文件:
suvan.file
suvan.file.mine
suvan.file.r30
suvan.file.r31
当我们解决了suvan.file的冲突,并且准备提交,运行svn resolved让我们的工作拷贝知道我们已经完成了所有事情。
我们也可以仅仅删除冲突的文件并且提交,但是svn resolved除了删除冲突文件,还修正了一些记录在工作拷贝管理区域的记录数据,所以我们推荐使用这个命令。
18. 不checkout而查看输出特定文件或URL的内容
svn cat svn地址(http或者svn协议)
例如:
svn cat https://blog.wanxiaohong.cn/project/suvan.file
补充说明:
unix下如果想更换svn的用户名和密码:
- 临时更换
在所有命令下强制加上--username 和--password选项。
例如:
svn up --username suvan --password 168168
2.永久更换
进入 ~/.subversion目录,删除auth/,若担心误删可以先备份
cd ~/.subversion && rm -rf auth/
您可以选择一种方式赞助本站
支付宝扫一扫
微信扫一扫