- 常用命令一览表

1、下载版本库,将文件checkout到本地目录: _svn co 仓库路径 本地路径 _
示例:
svn checkout https://192.168.1.201/svn/heipiao/app/ios 后面可加上本地路径
或者直接cd到本地路径:
svn co https://192.168.1.201/svn/heipiao/app/ios
如果你没有之前没有登录过svn则需要你输入服务器给你分配的用户名和密码
先输入本地密码,后输入svn的密码和账户
2、添加新的文件/文件件(如果不添加的话,显示的前面是?问号):_svn add file _
例如:svn add tt.proj
svn add *.proj(添加该后缀的文件到版本库中去)
3、将改动的文件提交到版本库
svn commit -m “注释“
例如:svn commit -m “add test file for my test“
简写:svn ci -m "注释,日志"
4、加锁/解锁
svn lock -m “日志或注释“ [--force] PATH
例如:svn lock -m “lock test file“ test.php
svn unlock PATH
5、更新到某版本(可以直接进入版本库中,省去路径)
svn update -r m path
例如:
svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
svn update -r 200 proj(将版本库中的文件test.php还原到版本200)
svn update proj(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)
简写:svn up
6、查看文件或者目录状态(很常用)
1)svn status path(目录下的文件和子目录的状态,正常状态不显示,可以直接使用拖拽的路径)
【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】
当出现?问号时,需要使用 svn add 问号对应的文件或文件夹
2)svn status -v path(显示文件和子目录状态)
第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
简写:svn st
7、删除文件
svn delete path -m “delete test fle“
例如:svn delete svn://10.100.102.11/pro/domain/tt.proj -m “删除文件”
或者直接svn delete tt.proj
然后再svn ci -m ‘删除‘,
推荐使用这种简写:svn (del, remove, rm)
8、查看日志
svn log path
或者cd到path直接 svn log
svn log -r 5:19 # shows logs 5 through 19 in chronological order 显示第5到19次修改的log升序排列
svn log -r 19:5 # shows logs 5 through 19 in reverse order 显示第5到19次修改的log降序排列
svn log -r 8 # shows log for revision 8 显示第8次修改的log
也可以检查单个文件或目录的日志历史,举个例子:$ svn log foo.c
得到目录和文件更多的信息--verbose (-v)开关 svn log -r 8 -v
**svn log**也有一个--quiet (-q)选项,会禁止日志信息的主要部分,当与--verbose结合使用,仅会显示修改的文件名。
只显示前面几行:svn log | head -n 5
只显示前面1行:svn log --limit 1 svn log -l 1
显示最新版本 svn log --revision HEAD 或者 svn log -r head -----只显示一行虚线
显示自己最近提交 svn log -r prev:committed
显示最近提交log svn log -r base:head

9、查看文件详细信息
svn info path
10、比较差异(可以直接使用Xcode查看)
svn diff path(将修改的文件与基础版本比较)
例如:svn diff tt.proj
svn diff -r m:n path(对版本m和版本n比较差异)
例如:svn diff -r 200:201 tt.proj
简写:svn di
11、将两个版本之间的差异合并到当前文件
svn merge -r m:n path
例如:svn merge -r 200:205 tt.proj(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)
12、SVN 帮助
svn help
svn help ci
svn help log
13.拷贝文件和目录
svn copy path/file_name newpath/new_file_name
svn commit -m "xxxx"
或者:
svn cp path/file_name newpath/new_file_name
svn commit -m "xxxx"
或者:
svn cp path/file_name newpath/new_file_name -m xxx
- svn的copy,是很重要的工具,版本分支和标签等概念都通过它实现。
14.重命名目录/文件
svn move file_name new_file_name
svn mv file_name new_file_name
15.使用标签和分支 在svn中标签和分支都源于copy命令。
发布分支:
svn cp -m 测试tag2222222 https://192.168.1.201/svn/heipiao/app/ios/C/trunk/customer https://192.168.1.201/svn/heipiao/app/ios/C/tags/22222 --username XXX --password XXX
切换分支:
svn switch https://easymorse-simpletag.googlecode.com/svn/branches/simpletag_select_2
合并分支需要两个步骤:
- 合并操作
svn merge -r 33:HEAD https://easymorse-simpletag.googlecode.com/svn/branches/simpletag_select_2
或者:
svn merge https://easymorse-simpletag.googlecode.com/svn/trunk/simpletag@HEAD https://easymorse-simpletag.googlecode.com/svn/branches/simpletag_select_1@HEAD
- 提交。
16.查看版本库下的文件和目录列表
svn list path
简写:svn ls
解决冲突
使用命令行 Subversion 访问项目源文件
SVN常用命令
svn 命令行下常用的几个命令
SVN常用命令说明
linux下svn命令大全
SVN简明课程
svn 终端命令
网友评论