Linux SVN 命令大全:从入门到精通

核心命令速查表

1. 检出与更新

svn checkout <url>        # 检出项目到本地
svn update                # 更新到最新版本
svn update -r 200 file.c  # 更新到指定版本

2. 文件操作

svn add file.txt          # 添加文件到版本控制
svn delete file.txt       # 删除文件
svn lock file.txt         # 锁定文件
svn unlock file.txt       # 解锁文件

3. 提交与撤销

svn commit -m "注释"      # 提交更改
svn revert file.txt       # 撤销本地修改
svn resolved file.txt     # 标记冲突已解决

4. 查看与比较

svn status               # 查看文件状态
svn diff                 # 比较差异
svn log                  # 查看提交历史
svn info                 # 查看详细信息

详细命令解析

项目初始化与更新

检出项目 (svn checkout)

# 基本用法
svn checkout svn://server/project/trunk

# 简写形式
svn co http://svn.example.com/project

更新工作副本 (svn update)

# 更新整个项目
svn update

# 更新特定文件
svn update file.txt

# 恢复到历史版本
svn update -r 150 file.txt

日常开发操作

添加新文件 (svn add)

# 添加单个文件
svn add newfile.txt

# 添加多个文件
svn add *.php

# 递归添加目录
svn add newdir/ --force

提交更改 (svn commit)

# 提交所有修改
svn commit -m "修复登录bug"

# 提交特定文件
svn commit file1.txt file2.txt -m "更新配置文件"

版本比较与历史

查看修改状态 (svn status)

# 查看当前状态
svn status

# 详细状态信息
svn status -v

# 状态标识说明:
# ? - 未版本控制
# M - 已修改
# C - 冲突
# A - 待添加
# D - 待删除

比较差异 (svn diff)

# 比较当前修改
svn diff

# 比较特定文件
svn diff file.txt

# 比较历史版本
svn diff -r 100:150 file.txt

冲突解决与撤销

解决冲突

# 标记冲突已解决
svn resolved file.txt

# 撤销本地修改
svn revert file.txt

# 撤销所有修改
svn revert -R .

分支与标签管理

创建分支

# 创建分支
svn copy trunk/ branches/my-branch -m "创建新分支"

# 切换分支
svn switch http://svn.example.com/branches/my-branch

创建标签

svn copy trunk/ tags/v1.0 -m "发布版本1.0"

实用技巧与示例

1. 忽略文件配置

# 设置忽略模式
svn propset svn:ignore "*.log
tmp/
*.tmp" .

2. 查看文件历史

# 查看完整历史
svn log file.txt

# 查看最近5条记录
svn log -l 5 file.txt

# 查看特定时间范围
svn log -r {2023-01-01}:{2023-12-31}

3. 文件锁定管理

# 锁定文件(防止他人修改)
svn lock file.txt -m "正在重构此文件"

# 查看锁信息
svn info --show-item lock

# 强制解锁(需要权限)
svn unlock --force file.txt

常见问题处理

1. 解决冲突

当文件出现冲突时:

# 1. 查看冲突文件
svn status

# 2. 手动解决冲突后标记
svn resolved file.txt

# 3. 提交解决结果
svn commit -m "解决合并冲突"

2. 恢复已删除文件

# 找回被删除的文件
svn copy -r 123 http://svn/path/to/file@123 file.txt

3. 清理工作副本

# 当工作副本出现问题时
svn cleanup

# 强制清理
svn cleanup --remove-ignored

高级用法

1. 属性管理

# 设置属性
svn propset svn:keywords "Date Rev Author" file.txt

# 查看属性
svn proplist file.txt

# 删除属性
svn propdel svn:keywords file.txt

2. 导出项目(不含.svn目录)

svn export http://svn.example.com/project/trunk

3. 查看仓库结构

svn list http://svn.example.com/project
svn list -R http://svn.example.com/project  # 递归列出

命令速查表

命令

功能

简写

svn checkout

检出项目

svn co

svn update

更新文件

svn up

svn commit

提交更改

svn ci

svn status

查看状态

svn st

svn diff

比较差异

svn di

svn delete

删除文件

svn del

svn list

列出文件

svn ls


注意:使用 SVN+SSH 访问时的格式:
svn+ssh://username@
hostname/path/to/repository

掌握这些命令能够满足日常开发中99%的版本控制需求。提议收藏本文,遇到问题时快速查阅相关命令用法。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容