SVN介绍与基本使用
- 什么是svn?
- svn是用来做什么的?
- svn常用命令
- SVN 常用命令一览表
1.什么是svn?
SVN是Subversion的简称,是一个自由开源的版本控制系统。
Subversion将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况,这样就可以借此将数据恢复到以前的版本,并可以查看数据的更改细节
早期版本控制使用的是CVS,后来SVN替代了CVS,随着android兴起,出现Git版本控制工具
2.svn是用来做什么的?
代码版本管理的工具
,即把代码提交到服务器,可回退历史版本,总结起来有以下几点功能:
- 把自己编写代码提交至服务器。每提交一次会产生一个版本,如果在实际过程中写错了可
查看历史版本
;回退历史版本
功能;- 协同修改。实际开发中不止一个人在开发,如果
多人开发
不可能进行通过文件整理来合并代码,如同第1点的每个人都可以提交交代码,SVN服务器会自动合并代码
。- 多版本项目文件管理。如代码可以分开前端和后端两个分支。
- 可以追溯编提交时间和提交人的代码,比如多人修改了同一个地方的代码,可以查看是谁修改了什么代码
权限控制
,可以把部分代码给不同的开发者,以免一个人把整个项目的代码都获取完,保证代码的安全性。- 代码仓库,每来一个新的职员提交链接就可以下载代码
3.svn常用命令
-
将文件checkout到本地目录
svn checkout path (path是服务器上的目录)
-
往版本库中添加新的文件
svn add file
-
将改动的文件提交到版本库
svn commit -m “LogMessage” [-N] [--no-unlock] PATH (如果选择了保持锁,就使用–no-unlock开关) 简写: svn ci
-
更新到某个版本
svn update -r m path 简写: svn up
-
看文件或者目录状态
1)svn status path(目录下的文件和子目录的状态,正常状态不显示) 2)svn status -v path(显示文件和子目录状态) 简写:svn st
-
删除文件
svn delete path -m “delete test fle” 简写:svn (del, remove, rm)
-
查看日志
svn log path
-
查看文件详情差异
svn info path
-
比较差异
svn diff path(将修改的文件与基础版本比较) svn diff -r m:n path(对版本m和版本n比较差异) 简写:svn di
-
将两个版本之间的差异合并到当前文件
svn merge -r m:n path
-
SVN 帮助
svn help svn help ci
4.SVN 常用命令一览表
命令 | 功能 | 使用格式 |
cheneck | 检出 | svn co URL |
up | 更新到当前URL的末端 | svn up |
switch | 更新到某一tag/branch | svn switch (tag/分支)URL |
add | 增加 | svn add 文件名 |
rm | 删除文件 | svn rm 文件名 |
删除目录 | svn rm 目录名 | |
diff | 与base版本(最后检出或者更新到的版本)对比 | svn diff |
与版本库中最新版本对比 | svn diff -r head | |
当前工作副本,两个版本之间对比 | svn diff -r reversion1:reversion2 | |
版本库中任意两个tag做对比 | svn diff (tag1)URL (tag2)URL | |
ci | 提交 | svn ci -m "commit log" |
log | 查看当前工作副本log | svn log |
只查看指定版本的log | svn log -r | |
打印log所有附加信息 | svn log -v | |
查看当前tag/branch版本详情 | svn log --stop-on-copy -v | |
info | 查看当前工作副本所在URL | svn info |
status | 查看工作副本的状态 | svn st |
查看文件的taglist | svn命令不支持,可执行cs taglist | |
tag | 新增tag | svn cp . (tag)URL |
删除tag | svn rm (tag)URL -m "commit log" | |
覆盖已存在的tag | 不支持 | |
branch | 创建分支 | svn cp (基线版本)URL (分支)URL -m "commit log"L |
删除分支 | svn rm (分支)URL -m "commit log" | |
同步分支 | svn co (主干)URL | |
cd ~/wc | ||
svn merge (主干)URL (待同步tag)URL | ||
svn ci -m "commit log" | ||
svn cp (主干)URL (以_PD_BL_MAIN结尾的tag)URL -m"commit log" | ||
合并分支 | svn co (合并目标)URL | |
cd ~/wc | ||
svn merge (基线版本tag)URL (上线tag)URL | ||
svn ci -m "commit log" | ||
svn cp (合并目标)URL (上线tag_MERGE_的tag对应)URL -m"commit log" |