SVN 命令
常用命令
svn checkout path
svn checkout path
例如:svn checkout svn://192.168.1.1/pro/domain --username root --password 123456 简写:svn co
svn add file
svn add file
例如:svn add test.php svn add *.php(添加当前目录下所有的php文件) svn add . (表示添加所有文件)
svn commit
svn commit -m “LogMessage“ [-N] [--no-unlock] path(如果选择了保持锁,就使用–no-unlock开关)
例如:svn commit -m “add test file for my test” test.php
简写:svn ci
一般步骤:
step-1:
svn update
step-2:
svn add file、svn delete file
step-3:
svn commit -m “提交文件到远程服务器”
svn update
svn update -r m path
svn update 后面没有目录,默认更新当前目录及子目录的所有文件到最新版本。
svn update -r 200 test.php (将版本库中的文件test.php还原到版本200)
简写:svn up
update命令还可以进行文件恢复。 (1)不小心写错了很多东西,想撤销所写的东西(已经把修改提交到服务器)svn update -r 版本号
(2)不小心删错了文件,想把文件恢复回来(已经把删除提交到服务器)
svn update -r 版本号
svn status
svn status -v path
svn status path
简写:svn st
显示文件和子目录的状态。 第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。 注:svn status
、svn diff
和 svn revert
这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
文件状态描述
‘ ‘ 没有修改
I 被忽略
R 被替换
~ 受控文件被其他文件阻隔
"!"表示:本地执行了"rm -rf",但是未执行"svn del"的状态。
"?"表示:本地新加了一个文件,但是未执行"svn add"的状态。
"A"表示:本地新加了一个文件,且执行了"svn add"的状态。
"X"表示:执行了"svn external"的状态。
"D"表示:本地执行了"rm -rf",且执行了"svn del"的状态。
"M"表示:本地修改了该文件时的状态。
"C"表示:冲突状态,是重点关注状态之一。
svn delete
svn delete path -m “delete test file”
例如:
1、删除远程服务器文件
svn delete svn://192.168.1.1/pro/domain/test.php -m “delete test file”
2、删除本地文件,然后提交
svn delete test.php, 然后再svn ci -m “delete test file”,推荐使用这种
简写:svn (del, remove, rm)
svn log
svn log path
例如:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化。
如果在工程的根目录使用该命令可能会列出非常多的日志内容,因此为了查找方便,我们通常会使用一些附加参数来配合svn log命令的使用。
svn diff path
默认将修改的文件与基础版本比较。
例如:svn diff test.php
svn diff -r m:n path(对版本m和版本n比较差异)
例如:svn diff -r 200:201 test.php
简写:svn di
svn merge
svn merge -r m:n path
例如:svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下。
svn merge (将分支代码合并到主干)
合并分支总结
1、哪个分支合并到哪个分支,就选择哪个分支右键分支代码TortoiseSVN-->Merge,比如A分支合并到B分支,此时B分支就是主分支,选择B分支右键分支代码TortoiseSVN-->Merge
2、使用merge a range of revisions时,URL From为被合并的分支代码。即A分支
3、使用merge two different trees时,From指定为合并的主分支代码,即B分支。To指定为需要被合并的分支代码,即A分支。
将分支合并到主干,需要选择主干代码右键Merge,选择对应合并类型处理。
将主干合并到分支,就需要选择对应分支右键Merge,选择对应合并类型处理。
1.merge a range of revisions
2.merge two different trees
svn 冲突
举例 :
svn update --accept tf foo.c
svn resolve --accept mf foo.c
svn resolve --accept ACTION PATH svn resolve --accept mf foo.c mf:放弃服务器 tf:放弃本地