SVN(Subversion)是一款广泛使用的版本控制系统,通过命令行可以高效地管理代码版本,以下是SVN命令行的详细使用方法,涵盖常用操作及场景应用。

基础命令
检出(checkout)
从SVN仓库下载代码到本地,首次使用时执行:svn checkout svn://仓库地址/项目名 本地目录名
若需指定版本号,可添加
-r参数,如svn checkout -r 100 svn://...。更新(update)
同步本地代码与仓库最新版本:svn update
可通过
-r指定更新到特定版本,或--depth控制更新深度(如--depth immediates仅更新直接文件)。
(图片来源网络,侵删)提交(commit)
将本地修改上传到仓库:svn commit -m "提交说明"
建议添加详细说明,便于版本追溯,若需修改文件属性(如权限),可加
--force参数。添加(add)
将新文件或目录纳入版本控制:svn add 新文件名
对于目录,递归添加所有子文件需加
--force参数。
(图片来源网络,侵删)删除(delete/remove)
从版本控制中移除文件或目录:svn delete 文件名
执行后会标记为删除,需提交才能生效,若直接物理删除,可用
--force强制操作。
高级操作
查看状态(status)
检查本地文件与仓库的差异:svn status
常用参数:
-u:显示服务器端最新状态-v:显示详细版本信息--ignore-externals:忽略外部链接
查看日志(log)
查看提交历史记录:svn log -v 文件名
可通过
-l 10限制显示条数,或--grep过滤特定提交说明。比较差异(diff)
对比本地与仓库版本,或两个历史版本:svn diff 文件名 # 本地与仓库对比 svn diff -r 10:20 文件名 # 版本10与20对比
输出可通过
> diff.txt保存到文件。解决冲突(resolve)
合并代码时出现冲突时,标记冲突已解决:svn resolve --accept=mine-full 文件名
参数说明:
mine-full(保留本地修改)、theirs-full(保留远程修改)。
分支与标签管理
创建分支(copy)
从主干创建分支:svn copy svn://仓库地址//trunk svn://仓库地址/branches/新分支名 -m "创建分支"
切换分支(switch)
切换当前工作目录到分支:svn switch svn://仓库地址/branches/分支名 本地目录
合并分支(merge)
将分支修改合并回主干:svn merge -r 起始版本:结束版本 svn://仓库地址/分支名 .
常用参数速查表
| 参数 | 功能 | 示例 |
|---|---|---|
-r 版本号 | 指定版本号 | svn update -r 100 |
-v | 显示详细信息 | svn log -v |
--force | 强制执行操作 | svn add --force 目录 |
--depth 深度 | 控制操作深度 | svn update --depth empty |
--ignore-externals | 忽略外部链接 | svn update --ignore-externals |
相关问答FAQs
Q1: SVN提示“working copy locked”如何解决?
A: 通常是因为上一次操作异常中断导致,可执行 svn cleanup 清理锁,若仍失败,手动删除 .svn/lock 文件后重试。
Q2: 如何回退到历史版本?
A: 使用 svn update -r 版本号 回退本地代码,然后执行 svn commit -m "回退到版本X" 提交回退操作,若需彻底删除后续版本,需使用 svn merge -r HEAD:目标版本 . 合并并提交。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/385410.html<
