二、SVN基础命令速查表

发布于:2025-09-02 ⋅ 阅读:(18) ⋅ 点赞:(0)

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的常用命令,建议打印出来放在手边,方便快速查阅。


网站公告

今日签到

点亮在社区的每一天
去签到