> 技术文档 > 二、SVN基础命令速查表

二、SVN基础命令速查表


SVN基础命令速查表

📋 目录

  • 基本操作
  • 文件管理
  • 分支管理
  • 标签管理
  • 信息查询
  • 冲突解决
  • 权限管理
  • 常用参数

🔧 基本操作

检出代码

# 检出整个仓库svn checkout <URL> [PATH]# 检出特定版本svn checkout <URL> [PATH] -r <版本号># 检出特定目录svn checkout <URL>/trunk [PATH]# 示例svn checkout https://svnbucket.com/user/project ./my-projectsvn checkout https://svnbucket.com/user/project/trunk ./trunk -r 100

更新代码

# 更新到最新版本svn update [PATH]# 更新到特定版本svn update [PATH] -r <版本号># 更新特定文件svn update file.txt# 示例svn updatesvn update -r 150svn 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 statussvn status -v src/

📁 文件管理

添加文件

# 添加新文件svn add <文件路径># 添加目录svn add <目录路径># 添加所有新文件svn add . --force# 示例svn add newfile.txtsvn add src/newmodule/svn add . --force

删除文件

# 删除文件svn delete <文件路径># 删除目录svn delete <目录路径># 强制删除svn delete --force <路径># 示例svn delete oldfile.txtsvn delete src/oldmodule/

移动/重命名

# 移动文件svn move <源路径> <目标路径># 重命名文件svn move oldname.txt newname.txt# 示例svn move src/old.js src/new.jssvn 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-loginsvn 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 logsvn log src/main.jssvn log -r 100:150svn log -v

查看信息

# 查看文件信息svn info [PATH]# 查看URL信息svn info <URL># 示例svn infosvn info src/main.jssvn info https://svnbucket.com/user/project/trunk

查看差异

# 查看工作副本与仓库的差异svn diff [PATH]# 查看特定文件的差异svn diff <文件路径># 查看两个版本的差异svn diff -r <版本1>:<版本2> [PATH]# 查看与特定版本的差异svn diff -r <版本号> [PATH]# 示例svn diffsvn diff src/main.jssvn diff -r 100:150svn diff -r 100 src/main.js

查看文件列表

# 列出目录内容svn list [URL]# 显示详细信息svn list -v [URL]# 递归显示svn list -R [URL]# 示例svn list https://svnbucket.com/user/project/trunksvn list -vsvn 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.jssvn resolved --accept working src/main.js

回滚操作

# 回滚到上一个版本svn revert <文件路径># 回滚整个目录svn revert -R <目录路径># 回滚到特定版本svn update -r <版本号> [PATH]# 示例svn revert src/main.jssvn 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> ./projectcd projectecho \"*.log\" >> .svnignoresvn 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 下载代码到本地 更新 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的常用命令,建议打印出来放在手边,方便快速查阅。