一、基本检出与提交
| 操作 | 命令 |
|---|---|
| 检出仓库 |
--depth=empty(等价旧写法 -N) 只检出这个目录本身,里面什么都没有 后续按需“放大”某一层 TortoiseSVN 对应选项 Fully recursive:全递归。检出完整的目录树。 Only this item → empty |
| 提交修改 | svn commit -m "提交说明" |
| 更新到最新 | svn update |
二、文件与目录管理
| 操作 | 命令 |
|---|---|
| 添加文件/目录 | svn add 文件名 |
| 删除文件/目录 | svn delete 文件名 |
| 移动/重命名 | svn move 源 目标 |
| 复制 | svn copy 源 目标 |
三、查看状态与信息
| 操作 | 命令 |
|---|---|
查看工作副本状态(快速确认本地变动如 :M修改、A添加、?未追踪,x 状态通常表示该文件或目录被外部定义(externals definition)所引用) | svn status(st) |
| 查看文件/目录信息 | svn info [路径] |
| 查看仓库的提交历史,包括作者、日期和描述 |
svn log -v -r 100,只查看某个版本改动了哪些文件(不关心内容) |
| 查看差异 | svn diff [文件] |
| 列出仓库目录内容 | svn list (svn ls):列出仓库目录内容。例如,svn ls http://svn.example.com 显示远程文件结构。 |
| 查看特定版本的文件 | svn cat:输出特定版本的文件内容。如 svn cat -r 100 file.c 显示历史版本。 |
四、分支与标签操作
| 操作 | 命令 |
|---|---|
| 创建分支/标签 | svn copy 源URL 目标URL -m "说明" |
| 合并分支 | svn merge [选项] [源路径] [目标路径(默认当前)] |
| 切换分支 | svn switch 新分支URL |
五、撤销与回退
| 操作 | 命令 |
|---|---|
| 撤销本地修改(只恢复"已被版本控制"的东西,新增的"?"文件不会被删,) | svn revert 文件,默认不递归,想要整棵树回退,请务必带上 -R 或 --depth=infinity |
| 回退到指定版本 | svn merge -r 当前版本:目标版本 文件 |
| 恢复已删除文件 | svn revert 文件名(未提交时) |
六、常用选项
-m "说明":直接添加提交说明--username 用户名:指定用户名--password 密码:指定密码--non-interactive:非交互模式(脚本中使用)-r 版本号:指定版本号
七、实用小技巧
- 查看文件修改历史:
svn blame 文件名 - 清理锁定:
svn cleanup - 导出无.svn目录的副本:
svn export URL 目录 - 忽略文件:
svn propset svn:ignore "模式" 目录
以上是 SVN 命令行最常用的操作,适用于日常版本管理。
对merge的总结