1.将文件checkout到本地目录
svn checkout svn路径 下载到的本地路径
//例如
svn checkout svn://192.168.1.131/45dian/brand
//推荐添加本地目录
svn checkout svn://192.168.1.131/45dian/brand ./brand/
//简写
svn co
2.往版本库添加新的文件
svn add file
//添加test.php:
svn add test.php
//添加当前目录下所有的php文件
svn add *.php
//添加user目录(同时将目录下所有内容添加)
svn add user
注:添加完成后需要提交到版本库
3.将改动的文件提交到版本库
svn commit -m '注释内容' [-N] [--no-unlock] PATH
//简写
svn ci
输入命令:$svn st | grep "M" | cut -c 8->modified.txt
以上命令将会把状态为M的文件筛选出来存入modified.txt文件,可以打开此文件查看是不是正确的。
只将modified.txt中记录的文件递交到SVN服务器
输入命令:svn ci -m "add buyGoods fun to every channel" --targets modified.txt
//提交文件夹及目录
svn ci -m '添加新文件' test.php
svn ci -m '添加新目录' user
4.加锁/解锁
svn lock -m '加锁注释内容' [--force] PATH
//例如:
svn lock -m "锁定文件" test.php
//解锁内容
svn unlock PATH
5.更新版本
在修改文件之前,一定要先更新版本库,再修改文件,然后提交
如果提交提示过期,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后提交commit。
svn update -r -m PATH
//更新到最新版本:
svn update(如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。)
//将文件还原到历史版本200
svn -r 200 test.php
//把test.php更新到最新版本
svn update test.php
//简写
svn up
6、查看文件或者目录状态
1)svn status path(目录下的文件和子目录的状态,正常状态不显示)
【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】
2)svn status -v path(显示文件和子目录状态)
第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
简写:svn st
7.删除文件
svn delete PATH -m '注释内容'
//例如:
svn delete svn://192.168.1.133/45dian/brand/test.php -m '删除svn中文件'
//或者(推荐使用)
svn delete test.php
svn ci -m '提交删除的文件'
8、查看日志
svn log path
例如:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化
9、查看文件详细信息
svn info path
例如:svn info test.php
10、比较差异
svn diff path(将修改的文件与基础版本比较)
例如:svn diff test.php
svn diff -r m:n path(对版本m和版本n比较差异)
例如:svn diff -r 200:201 test.php
简写:svn di
11.在版本库中添加文件夹
//在svn版本库中添加文件夹
svn mkdir PATH
//等价于
mkdir work
svn add work -m '添加文件夹'
12.svn的还原和回退
svn还原(svn revert)还原在工作副本中已添加或已修改还未提交的文件;
回退(svn merge)将以提交svn库中的版本恢复到指定版本。
命令行操作:
svn还原:
命令:svn revert file(要恢复修改的目录或文件)
回退,需要通过合并的方法回退
命令:svn merge –r m:n path
$>svn merge –r m:n path(要回退的目录或文件)
(从m版本回退到n版本)
然后提交(svn commit)
有关svn的详细讲解