SVN 常用命令详解 @
SVN(Subversion)是一个广泛使用的版本控制系统,用于管理文件和目录的变更。以下是对常用 SVN 命令的结构化整理,涵盖代码检出、提交、更新、日志查看、分支操作等核心功能,帮助开发者更高效地使用 SVN。
一、代码检出与提交 @
-
检出代码
从远程仓库检出代码到本地目录:svn checkout svn://xxxx.com/xxx/xxx --username xxx --password xxx save_dir -
提交代码
-
提交所有变更:
svn commit -m "提交描述" -
提交指定文件或目录:
svn commit /path/file -m "提交指定文件" -
提交特定类型文件(如所有
.js文件):svn commit *.js -m "提交所有 js 文件"
-
二、更新与撤销 @
-
更新代码
-
更新到最新版本:
svn update -
更新到指定版本:
svn update -r xxx -
仅更新特定文件:
svn update /path/file
-
-
撤销修改
-
撤销单个文件的修改:
svn revert file.go -
递归撤销整个目录的修改:
svn revert -R /path/dir
-
三、文件操作 @
-
添加文件
-
添加指定文件或目录:
svn add /path/file -
添加特定类型文件(如所有
.go文件):svn add *.go
-
-
删除文件
-
从版本控制中移除文件:
svn delete /path/file -
移除版本控制但保留本地文件:
svn delete /path/file --keep-local
-
四、查看日志与差异 @
-
查看提交日志
-
查看所有日志:
svn log -
查看指定文件或目录的日志:
svn log /path/file -
查看日志并显示变动的文件列表:
svn log -v -
限制日志条数(如最新 5 条):
svn log -l 5
-
-
查看差异
-
查看本地修改:
svn diff -
查看指定文件的差异:
svn diff /path/file -
比较本地文件与指定版本的差异:
svn diff /path/file -r xxx -
比较两个版本的差异:
svn diff /path/file -r 1:2
-
五、忽略文件配置 @
-
设置忽略规则
-
忽略当前目录下所有
.go文件:svn propset svn:ignore "*.go" . -
递归忽略所有
.go文件:svn propset svn:global-ignores "*.go" . -
从文件读取忽略规则:
svn propset svn:ignore -F filename.txt .
-
-
管理忽略属性
-
编辑忽略属性:
svn propedit svn:ignore . -
查看当前目录属性:
svn proplist . -v -
删除忽略设置:
svn propdel svn:ignore .
-
六、状态与清理 @
-
查看状态
-
查看所有文件状态:
svn status -
查看指定文件状态:
svn status /path/file
-
-
清理工作副本
svn cleanup
七、信息查看与文件列表 @
-
查看仓库信息
svn info -
查看文件列表
-
查看当前目录文件列表:
svn ls -
查看指定版本的文件列表:
svn ls -r 版本号
-
-
查看文件内容
svn cat file.go # 可加 -r 指定版本 -
查看文件修改记录
svn blame file
八、分支与合并 @
-
创建分支
svn cp -m "描述内容" http://xxx.com/xxx/trunk http://xxx.com/xxx/branches/xx1.0 -
合并操作
-
合并主干最新代码到分支:
cd branches/xxx1.0 svn merge http://xxx.com/xxx/trunk -
将分支合并回主干:
svn merge --reintegrate http://xxx.com/xxx/branches/xxx1.0
-
-
切换分支
svn switch svn://xxx/xxx/xxx1.0 -
删除分支
svn rm http://xxx.com/xxx/branches/xxx1.0
九、其他实用命令 @
-
查看未版本控制的文件
svn status | grep ^? -
批量添加未版本控制的文件
svn st | grep '^\?' | tr '^\?' ' ' | sed 's/[ ]*//' | sed 's/[ ]/\\ /g' | xargs svn add -
重定向仓库地址
svn switch --relocate 原SVN地址 新SVN地址
通过以上分类和详细说明,可以更清晰地理解和使用 SVN 的常用命令,提升版本控制效率。