二、SVN基础命令速查表
SVN基础命令速查表
📋 目录
- 基本操作
- 文件管理
- 分支管理
- 标签管理
- 信息查询
- 冲突解决
- 权限管理
- 常用参数
🔧 基本操作
检出代码
# 检出整个仓库
svn checkout <URL> [PATH]# 检出特定版本
svn checkout <URL> [PATH] -r <版本号># 检出特定目录
svn checkout <URL>/trunk [PATH]# 示例
svn checkout https://svnbucket.com/user/project ./my-project
svn checkout https://svnbucket.com/user/project/trunk ./trunk -r 100
更新代码
# 更新到最新版本
svn update [PATH]# 更新到特定版本
svn update [PATH] -r <版本号># 更新特定文件
svn update file.txt# 示例
svn update
svn update -r 150
svn update src/main.js
提交更改
# 提交所有更改
svn commit [PATH] -m "提交信息"# 提交特定文件
svn commit file1.txt file2.txt -m "提交信息"# 强制提交(不检查)
svn commit --no-unlock [PATH] -m "提交信息"# 示例
svn commit -m "修复登录bug"
svn commit src/ -m "更新源代码"
查看状态
# 查看工作副本状态
svn status [PATH]# 显示详细信息
svn status -v [PATH]# 显示忽略的文件
svn status --no-ignore [PATH]# 示例
svn status
svn status -v src/
📁 文件管理
添加文件
# 添加新文件
svn add <文件路径># 添加目录
svn add <目录路径># 添加所有新文件
svn add . --force# 示例
svn add newfile.txt
svn add src/newmodule/
svn add . --force
删除文件
# 删除文件
svn delete <文件路径># 删除目录
svn delete <目录路径># 强制删除
svn delete --force <路径># 示例
svn delete oldfile.txt
svn delete src/oldmodule/
移动/重命名
# 移动文件
svn move <源路径> <目标路径># 重命名文件
svn move oldname.txt newname.txt# 示例
svn move src/old.js src/new.js
svn move file.txt docs/file.txt
复制文件
# 复制文件
svn copy <源路径> <目标路径> -m "提交信息"# 复制到不同位置
svn copy file.txt backup/file.txt -m "创建备份"# 示例
svn copy src/main.js src/main_backup.js -m "创建备份"
🌿 分支管理
创建分支
# 创建分支
svn copy <源URL> <分支URL> -m "创建分支"# 从主干创建分支
svn copy <trunk_URL> <branch_URL> -m "创建功能分支"# 示例
svn copy https://svnbucket.com/user/project/trunk \https://svnbucket.com/user/project/branches/feature-login \-m "创建登录功能分支"
切换分支
# 切换到分支
svn switch <分支URL> [PATH]# 切换回主干
svn switch <trunk_URL> [PATH]# 示例
svn switch https://svnbucket.com/user/project/branches/feature-login
svn switch https://svnbucket.com/user/project/trunk
合并分支
# 合并分支到当前工作副本
svn merge <源URL> [PATH]# 合并特定版本范围
svn merge -r <起始版本>:<结束版本> <源URL> [PATH]# 合并到主干
svn merge https://svnbucket.com/user/project/branches/feature-login# 示例
svn merge -r 100:150 https://svnbucket.com/user/project/branches/feature-login
删除分支
# 删除分支
svn delete <分支URL> -m "删除分支"# 示例
svn delete https://svnbucket.com/user/project/branches/feature-login \-m "删除已合并的登录功能分支"
🏷️ 标签管理
创建标签
# 创建标签
svn copy <源URL> <标签URL> -m "创建标签"# 创建版本标签
svn copy <trunk_URL> <tag_URL> -m "发布版本v1.0.0"# 示例
svn copy https://svnbucket.com/user/project/trunk \https://svnbucket.com/user/project/tags/v1.0.0 \-m "发布版本v1.0.0"
删除标签
# 删除标签
svn delete <标签URL> -m "删除标签"# 示例
svn delete https://svnbucket.com/user/project/tags/v1.0.0 \-m "删除错误标签"
📊 信息查询
查看日志
# 查看提交历史
svn log [PATH]# 查看特定文件的日志
svn log <文件路径># 查看特定版本范围
svn log -r <起始版本>:<结束版本> [PATH]# 显示详细信息
svn log -v [PATH]# 示例
svn log
svn log src/main.js
svn log -r 100:150
svn log -v
查看信息
# 查看文件信息
svn info [PATH]# 查看URL信息
svn info <URL># 示例
svn info
svn info src/main.js
svn info https://svnbucket.com/user/project/trunk
查看差异
# 查看工作副本与仓库的差异
svn diff [PATH]# 查看特定文件的差异
svn diff <文件路径># 查看两个版本的差异
svn diff -r <版本1>:<版本2> [PATH]# 查看与特定版本的差异
svn diff -r <版本号> [PATH]# 示例
svn diff
svn diff src/main.js
svn diff -r 100:150
svn diff -r 100 src/main.js
查看文件列表
# 列出目录内容
svn list [URL]# 显示详细信息
svn list -v [URL]# 递归显示
svn list -R [URL]# 示例
svn list https://svnbucket.com/user/project/trunk
svn list -v
svn list -R src/
⚠️ 冲突解决
查看冲突
# 查看冲突文件
svn status# 查看冲突详情
svn diff
解决冲突
# 标记冲突已解决
svn resolved <文件路径># 解决所有冲突
svn resolved --accept working <文件路径>
svn resolved --accept theirs <文件路径>
svn resolved --accept mine <文件路径># 示例
svn resolved src/main.js
svn resolved --accept working src/main.js
回滚操作
# 回滚到上一个版本
svn revert <文件路径># 回滚整个目录
svn revert -R <目录路径># 回滚到特定版本
svn update -r <版本号> [PATH]# 示例
svn revert src/main.js
svn revert -R src/
svn update -r 100
🔐 权限管理
锁定文件
# 锁定文件
svn lock <文件路径> -m "锁定原因"# 强制锁定
svn lock --force <文件路径> -m "强制锁定"# 示例
svn lock src/main.js -m "正在修改核心功能"
解锁文件
# 解锁文件
svn unlock <文件路径># 强制解锁
svn unlock --force <文件路径># 示例
svn unlock src/main.js
📝 常用参数
全局参数
# 指定版本号
-r <版本号> 或 --revision <版本号># 指定消息
-m <消息> 或 --message <消息># 递归操作
-R 或 --recursive# 强制操作
--force# 详细输出
-v 或 --verbose# 安静模式
-q 或 --quiet# 非交互模式
--non-interactive
常用选项
# 忽略外部引用
--ignore-externals# 深度控制
--depth empty|files|immediates|infinity# 接受选项
--accept postpone|base|working|mine-conflict|theirs-conflict|mine-full|theirs-full|edit|launch
🚀 常用组合命令
初始化项目
# 检出项目并设置忽略文件
svn checkout <URL> ./project
cd project
echo "*.log" >> .svnignore
svn propset svn:ignore -F .svnignore .
svn commit -m "设置忽略文件"
批量操作
# 添加所有新文件
svn status | grep "^?" | awk '{print $2}' | xargs svn add# 删除所有已删除的文件
svn status | grep "^!" | awk '{print $2}' | xargs svn delete# 提交所有更改
svn commit -m "批量更新"
备份操作
# 导出特定版本
svn export <URL>@<版本号> ./backup# 创建完整备份
svnadmin dump <仓库路径> > backup.dump# 恢复备份
svnadmin load <仓库路径> < backup.dump
📚 命令速查卡片
操作 | 命令 | 说明 |
---|---|---|
检出 | svn checkout <URL> | 下载代码到本地 |
更新 | svn update | 更新到最新版本 |
提交 | svn commit -m "消息" | 提交更改到服务器 |
状态 | svn status | 查看文件状态 |
添加 | svn add <文件> | 添加新文件到版本控制 |
删除 | svn delete <文件> | 删除文件 |
移动 | svn move <源> <目标> | 移动或重命名文件 |
日志 | svn log | 查看提交历史 |
差异 | svn diff | 查看文件差异 |
信息 | svn info | 查看仓库信息 |
锁定 | svn lock <文件> | 锁定文件 |
解锁 | svn unlock <文件> | 解锁文件 |
解决冲突 | svn resolved <文件> | 标记冲突已解决 |
回滚 | svn revert <文件> | 撤销本地更改 |
💡 使用技巧
1. 提交前检查
# 查看将要提交的文件
svn status# 查看具体更改
svn diff# 查看日志确认
svn log -r HEAD
2. 分支管理
# 创建功能分支
svn copy trunk branches/feature-name -m "创建功能分支"# 开发完成后合并
svn merge branches/feature-name trunk# 删除已合并分支
svn delete branches/feature-name -m "删除已合并分支"
3. 版本管理
# 创建发布标签
svn copy trunk tags/v1.0.0 -m "发布版本v1.0.0"# 查看版本历史
svn log -v tags/# 回滚到特定版本
svn update -r 100
这个速查表涵盖了SVN的常用命令,建议打印出来放在手边,方便快速查阅。