1、将文件checkout到本地目录
svn checkout svn文件路径
简写:svn co
2、往版本库中添加新文件
svn add 文件名
3、将改动的文件提交到版本库
svn commit -m "注释" 文件名
简写:svn ci
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 test.php(将版本库中的文件test.php还原到版本200)。
svn update test.php(更新,于版本库同步,如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清楚svn resolved,最后再提交commit)
简写:svn up
6、查看文件或者目录状态
一、svn status PATH(目录下的文件和子目录的状态,正常状态下不显示)[?:不再svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定]
二、svn status -v PATH(显示文件和子目录状态)
第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人
注:svn status、svn diff、svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝
7、 删除文件
svn delete path -m "注释"
或者直接svn delete path 然后再svn ci -m "注释",推荐使用
简写:svn (del/remove/rm)
8、查看日志
svn log path
eg:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化
9、查看文件详细信息
svn info path
eg:svn info test.php
10、比较差异
svn diff path(将修改的文件与基础版本比较)
eg: svn diff test.php
svn diff -r m:n path(对版本m和版本n比较差异)
eg:svn diff -r 200:201 test.php
简写:svn di
11、将两个版本之间的差异合并到当前文件
svn merge -r m:n path
eg: svn merge -r 200:205 test.php (将版本200和205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)
12、svn帮助
svn help
svn help ci
查找分支产生的版本(分支的“基准”)的最好方法是在svn log中使用--stop-on-copy选项,log子命令通常会显示所有关于分支的变化,包括创建分支的过程,就好像你在主干上一样,--stop-on-copy会在svn log检测到目标拷贝或者改名时中止日志输出。
所以,在我们的例子里,
$ svn log -v --stop-on-copy \
http://svn.example.com/repos/calc/branches/my-calc-branch
…
------------------------------------------------------------------------
r341 | user | 2002-11-03 15:27:56 -0600 (Thu, 07 Nov 2002) | 2 lines
Changed paths:
A /calc/branches/my-calc-branch (from /calc/trunk:340)
$
正如所料,最后打印出的版本正是由my-calc-branch拷贝生成的版本。
可以使用svn merge --dry-run来模拟merge一下,看一下merge会发生什么,而不是真正的做这个动作。
svn使用
最新推荐文章于 2025-03-18 21:12:10 发布
1866

被折叠的 条评论
为什么被折叠?



