什么是 SVN?
Apache Subversion(简称 SVN)是一个开源的集中式版本控制系统,用于管理文件和目录的变更历史,它帮助团队协作开发、追踪代码修改、回溯历史版本,是软件开发中常用的工具之一。
安装 SVN 客户端
在执行命令前,需先安装 SVN 客户端:
-
Windows:
- 下载 TortoiseSVN(图形界面)或 SlikSVN(命令行)。
- 安装后重启系统,右键菜单出现 SVN 选项即成功。
-
Linux/macOS:
终端执行安装命令:# Ubuntu/Debian sudo apt-get install subversion # CentOS sudo yum install subversion # macOS(需安装 Homebrew) brew install subversion
基础 SVN 命令详解
检出代码(Checkout)
首次获取仓库代码到本地:
svn checkout [仓库URL] [本地目录] --username [用户名]svn checkout https://svn.example.com/project/trunk ./myproject --username alice
- 系统会提示输入密码。
- 成功后本地生成
myproject
目录,内含仓库文件。
更新代码(Update)
同步本地代码至最新版本:
svn update [本地目录或文件] # 示例(在项目目录内): svn update
提交更改(Commit)
将本地修改上传到仓库:
svn commit -m "提交说明" [文件/目录]svn commit -m "修复登录页面bug" src/login.js
- 提交前需先更新(
svn update
),避免冲突。
查看状态(Status)
检查文件变更状态(新增/修改/冲突):
svn status [路径] # 常用标记: # ? 未纳入版本控制 # A 新增文件 # M 已修改 # C 冲突
添加文件(Add)
将新文件纳入版本控制:
svn add [文件名]svn add config.yaml
- 添加后需执行
svn commit
生效。
解决冲突(Resolve)
多人修改同一文件时可能冲突:
- 执行
svn update
提示冲突文件(标记为C
)。 - 手动编辑文件解决冲突(冲突部分格式:
<<<<<<<
到>>>>>>>
)。 - 标记冲突已解决:
svn resolve --accept working [冲突文件]
- 重新提交。
进阶操作
查看日志(Log)
追溯文件修改历史:
svn log [文件路径] # 显示版本号、作者、日期、提交说明。
回退版本(Revert)
撤销未提交的本地修改:
svn revert [文件名] # 撤销单个文件 svn revert -R . # 撤销整个目录
创建分支/标签
svn copy [源URL] [目标URL] -m "说明" # 示例(创建分支): svn copy https://svn.example.com/project/trunk \ https://svn.example.com/project/branches/feat-login \ -m "创建登录功能分支"
安全操作建议
- 定期更新:提交前先
svn update
,减少冲突。 - 备份重要数据:误操作可能导致数据丢失。
- 权限管理:
- 使用
svn auth
管理账号密码。 - 敏感操作(如删除)需管理员授权。
- 使用
- 忽略文件:
创建.svnignore
文件,排除临时文件(如*.log
、node_modules/
)。
常见问题排查
- 认证失败:
检查用户名/密码,或清除缓存:svn auth --remove [仓库URL]
- 文件冲突:
按“解决冲突”流程操作,勿直接覆盖文件。 - 命令报错:
使用svn help [命令]
查看帮助(如svn help commit
)。
掌握 SVN 命令是团队协作的基础,核心流程可归纳为:
- 获取代码 →
checkout
- 日常操作 →
update
→ 修改 →status
→add
→commit
- 冲突处理 → 手动解决 →
resolve
→commit
引用说明:
- SVN 官方文档:Apache Subversion
- 命令参考手册:SVN Book
- 图形工具推荐:TortoiseSVN(Windows)、Cornerstone(macOS)
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4623.html