Subversion是一个自由开源的版本控制系统。由Apache提供支持( https://subversion.apache.org/ ),Subversion将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器。不同的是,它可以记录每一次文件和目录的修改情况,这样就可以在需要的回滚时,将数据恢复到以前的版本,并可以查看数据的更改细节。
1、将文件检出(checkout)到本地目录
svn checkout PATH
PATH代表您的SVN仓库地址,checkout可简写为”svn co PATH”
2、向版本中添加新文件(或文件夹)
svn add FILENAME
# 添加当前目录下所有php文件
svn add *.php
# 递归添加当前目录下的所有新文件
svn add . --no-ignore --force
FILENAME代表您要添加的文件名称
3、更新本地版本
svn update
可简写为”svn up”,更新到最新版本,如需更新到指定版本:
svn update -r m path
4、将改动的文件提交到版本库(提交代码)
svn commit -m "LogMessage" [-N] [--no-unlock] PATH
如果选择了保持锁,就使用–no-unlock开关,svn commit 可简写为”svn ci”
5、svn加锁/解锁
#加锁
svn lock -m "LockMessage" [--force] PATH
#解锁
svn unlock PATH
6、查看文件或者目录状态
#目录下的文件和子目录的状态,正常状态不显示
svn status PATH
#显示文件和子目录状态
svn status -v PATH
#查看当前文件夹svn信息
svn info
7、删除文件
svn delete PATH -m "YOUR MESSAGE"
简写:svn del / remove / rm
8、查看日志
svn log path
9、搜索你的工作副本并执行所有遗留的日志,在这过程中删除锁
svn cleanup
10、比较差异
#将修改的文件与基础版本比较
svn diff PATH
#对版本m和版本n比较差异
svn diff -r m:n PATH
简写:svn di
11、将两个版本之间的差异合并到当前文件
svn merge -r m:n PATH
12、版本库下的文件和目录列表
svn list PATH
显示path目录下的所有属于版本库的文件和目录
简写:svn ls
14、恢复本地修改
svn revert PATH
本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复被删除的目录
16、代码库URL变更
svn switch NEW_PATH
更新你的工作副本,映射到一个新的URL
17、解决冲突
svn resolved PATH
本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的相关文件,然后让 PATH 可以再次提交。
18、输出指定文件或URL的内容。
svn cat -r PREV filename > filename
如果指定了版本,将从指定的版本开始查找。 svn cat -r PREV filename > filename (PREV 是上一版本,也可以写具体版本号,这样输出结果是可以提交的)
19、# 查看指定文件的所有提交记录
svn log FILE_NAME
# 查看指定版本号的log
svn log -r 100
20、svn分支
# 创建分支,从主干创建一个分支保存到branches/online1.0
svn cp -m "描述内容" https://URL/repos/trunk https://URL/repos/branches/online1.0
# 合并主干上的最新代码到分支上
cd branches/online1.0
svn merge https://URL/repos/trunk
# 分支合并到主干
svn merge --reintegrate https://URL/repos/branches/online1.0
# 删除分支
svn rm https://URL/repos/branches/online1.0
21、批量删除.svn目录的命令
find . -type d -name ".svn"|xargs rm -rf