Skip to content

svn 指令速查#

  • 辅助使用
  • 优先使用带界面工具:
    • windows TortoiseAVN
    • vscode Source Control

常用命令速查表#

命令 简写 功能说明
svn checkout svn co 检出代码
svn update svn up 更新代码
svn status svn st 查看状态
svn diff 查看差异
svn commit svn ci 提交更改
svn add 添加文件
svn delete svn del/svn rm 删除文件
svn revert 撤销本地修改
svn log 查看日志
svn info 查看信息
svn list svn ls 列表文件
svn copy svn cp 创建分支/标签
svn switch svn sw 切换分支

1. 从仓库取出代码#

  • 检出:从远程仓库下载整个项目和它的版本信息到本地,建立工作副本。

    svn checkout <仓库URL> [本地目录名]
    # 简写
    svn co <仓库URL> [本地目录名]
    

    示例

    svn co http://svn.example.com/svn/myproject/trunk myproject
    

2. 查看当前状态#

查看工作副本中文件的状态(哪些被修改过、新增的、未受控的等)。这是最常用的命令之一

svn status
# 简写
svn st

状态标志说明:

  • ?:文件在本地,但未加入版本控制(未使用 svn add)。
  • A:文件已调度等待添加到版本控制。
  • M:文件内容已被修改。
  • D:文件已调度等待从版本控制中删除。
  • C:文件发生冲突(需要解决)。
  • !:文件丢失或被移动(但SVN不知道)。
  • ~:文件受版本控制,但被其他类型的文件(如链接)替代。

3. 更新本地代码#

将本地工作副本更新到仓库的最新版本。在开始工作前和提交前,务必先执行此操作

svn update
# 简写
svn up
# 更新到特定版本
svn up -r 1234

4. 查看变更内容#

比较工作副本中的文件与仓库中的原始版本有何不同。

# 查看当前工作副本的所有变更
svn diff
# 查看特定文件的变更
svn diff <文件名>
# 将变更内容导出为补丁文件(方便发给别人)
svn diff > my_change.patch

5. 提交更改#

将本地的修改发送到中央仓库。提交时必须使用 -m 参数附加日志信息

svn commit -m "提交日志信息,清晰描述本次修改内容"
# 简写
svn ci -m "修复了XXbug"

6. 添加新文件/目录#

将新的文件或目录纳入版本控制。注意:add 之后还需要 commit 才真正生效

# 添加文件
svn add <文件名>
# 添加目录及其下的所有内容(递归)
svn add <目录名>
# 添加当前目录下所有未版本控制的文件(慎用)
svn add . --force

7. 删除文件/目录#

从版本控制中删除文件或目录。本地文件也会被删除

svn delete <文件或目录名>
# 简写
svn del <文件或目录名>
# 或
svn rm <文件或目录名>

8. 移动/重命名文件/目录#

移动或重命名一个文件或目录。SVN 会记录这个历史。

svn move <源路径> <目标路径>
# 简写
svn mv <源路径> <目标路径>

9. 查看日志#

查看提交历史记录。

# 查看当前目录的详细日志
svn log
# 查看特定文件的日志
svn log <文件名>
# 简洁模式,只显示版本号和日志信息
svn log -v
# 限制显示条数,例如只显示最近3条
svn log -l 3

10. 撤销本地修改(未提交的)#

撤销对文件的所有本地修改,恢复到仓库中的原始状态。这是一个危险操作,撤销后无法恢复

# 撤销单个文件的修改
svn revert <文件名>
# 递归撤销当前目录及子目录的所有修改
svn revert -R .