SVN

作者: Jackson_Z | 来源:发表于2017-01-14 10:16 被阅读176次
  • 常用命令一览表
常用命令一览表

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
Paste_Image.png

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 终端命令

相关文章

网友评论

      本文标题:SVN

      本文链接:https://www.haomeiwen.com/subject/gdrebttx.html