SVN常用命令

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 本文汇总了SVN版本控制系统的常用命令,包括代码检出、提交、更新、添加、删除、查看日志、状态、差异比较、撤销修改、忽略设置、清理、查看信息、文件列表、文件内容查看、blame操作、地址重定向以及分支管理等,旨在帮助用户更高效地使用SVN进行代码版本控制。

代码检出 checkout

这个命令会把 SVN 服务器上的代码下载到我们电脑上,checkout 也可以简写为 co

svn checkout svn://svnbucket.com/xxx/xxx
# 指定存储目录
svn checkout svn://svnbucket.com/xxx/xxx save-dir
# 指定用户名密码。
svn checkout svn://svnbucket.com/xxx/xxx --username xxxx --password xxx

提交代码 commit

此命令可以把我们本地的修改提交到 SVN 服务器,这样其他同事就能更新到我们的代码了。
commit 可以简写为 ci,-m 参数后面跟的是本次提交的描述内容

# 描述是必须的,但是可以填写空字符串,不指定
svn commit -m "提交描述"
# 只提交指定文件或目录
svn commit /path/to/file-or-dir -m "提交指定文件"
# 指定后缀的所有文件
svn commit *.js -m "提交所有 js 文件"

更新代码 update

执行此命令后会把其他人提交的代码从 SVN 服务器更新到我们自己电脑上,update 也可以简写为 up

# 更新到最新
svn update
# 更新到指定版本的代码。特别是最新版本代码有问题时,我们可以用这个命令回到之前的版本
svn update -r xxx 
# 仅更新指定文件或者目录
svn up /path/to/file-or-dir

添加文件 add

新建的文件,我们需要用 add 命令把它们加入 SVN 的版本管理,然后我们才可以提交它。
注意:添加后还需要进行提交喔。

# 添加指定文件或目录
svn add /path/to/file-or-dir
# 添加当前目录下所有 php 文件
svn add *.php

删除文件 delete

此命令会从 SVN 移除版本控制,移除后你需要提交一下

svn delete /path/to/file-or-dir
# 删除版本控制,但是本地依旧保留文件
svn delete /path/to/file-or-dir --keep-local

查看日志 log

# 查看当前目录的日志
svn log
# 查看指定文件或目录的提交日志
svn log /path/to/file-or-dir
# 查看日志,并且输出变动的文件列表
svn log -v
# 限定只输出最新的 5 条日志
svn log -l 5

查看变动 diff

# 查看当前工作区的改动
svn diff
# 查看指定文件或目录的改动
svn diff /path/to/file-or-dir
# 本地文件跟指定版本号比较差异
svn diff /path/to/file-or-dir -r xxx
# 指定版本号比较差异
svn diff /path/to/file-or-dir -r 1:2

撤销修改 revert

# 撤销文件的本地修改
svn revert test.php
# 递归撤销目录中的本地修改
svn revert -R /path/to/dir

添加忽略 ignore

SVN 的忽略是通过设置目录的属性 prop 来实现的,添加后会有一个目录属性变动的修改需要提交,记得要提交一下喔,这样其他人也有了这个忽略配置。

# 忽略所有 log 文件。注意最后有个点号,表示在当前目录设置忽略属性。
svn propset svn:ignore "*.log" .
# 递归忽略 global-ignores
svn propset svn:global-ignores "*.log" .
# 从文件读取忽略规则,一行一个规则。
svn propset svn:ignore -F filename.txt .
# 打开编辑器修改忽略属性
svn propedit svn:ignore .
# 查看当前目录的属性配置
svn proplist . -v
# 删除当前目录的忽略设置
svn propdel svn:ignore .

忽略仅对还未添加到版本库的文件生效,已经在版本库里的文件,添加忽略后是不会自动删除的也不会忽略,需要手动 delete 命令删除下才行。
TortoiseSVN 添加忽略会更加简单,也会自动执行删除命令。

查看状态 status

任何时候,你可以用下面的命令查看当前工作目录的 SVN 状态喔,会列出来哪些文件有变动。

svn status
svn status /path/to/file-or-dir

清理 cleanup

这个命令我们经常在 SVN 出现报错时可以执行一下,这样就会清理掉本地的一些缓存

svn cleanup

查看信息 info

svn info

查看文件列表 ls

svn ls 
# 指定版本号
svn ls -r 100

查看文件内容

# 查看指定版本的文件内容,不加版本号就是查看最新版本的
svn cat test.py -r 2

查看 blame

显示文件的每一行最后是谁修改的(出了BUG,经常用来查这段代码是谁改的)

svn blame filename.php

地址重定向

如果你的 SVN 地址变了,不需要重新 checkout 代码,只需要这样重定向一下就可以了。

svn switch --relocate 原 SVN 地址 新 SVN 地址

分支操作

# 创建分支,从主干 trunk 创建一个分支保存到 branches/online1.0
svn cp -m "描述内容" http://svnbucket.com/repos/trunk http://svnbucket.com/repos/branches/online1.0
# 合并主干上的最新代码到分支上
cd branches/online1.0
svn merge http://svnbucket.com/repos/trunk 
# 分支合并到主干
svn merge --reintegrate http://svnbucket.com/repos/branches/online1.0
# 切换分支
svn switch svn://svnbucket.com/test/branches/online1.0
# 删除分支
svn rm http://svnbucket.com/repos/branches/online1.0

帮助命令

# 查看SVN帮助
svn help
# 查看指定命令的帮助信息
svn help commit
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
6月前
|
存储 算法 开发工具
git是什么?git的五个命令,git和svn的区别
git是什么?git的五个命令,git和svn的区别
91 0
|
6月前
|
Java Linux 数据安全/隐私保护
SVN魔法笔记:工作中不可或缺的命令宝典
SVN魔法笔记:工作中不可或缺的命令宝典
81 2
|
数据安全/隐私保护
svn命令的使用
svn命令的使用
66 0
|
6月前
|
存储 安全 开发工具
快速入门安装及使用&git与svn的区别&常用命令
快速入门安装及使用&git与svn的区别&常用命令
159 0
|
Java Linux PHP
svn在linux下的使用(svn命令)
svn在linux下的使用(svn命令)
156 0
|
数据可视化 测试技术 PHP
SVN常用命令、TortoiseSVN使用详解
SVN常用命令、TortoiseSVN使用详解
349 0
|
Linux 数据安全/隐私保护 iOS开发
Linux下SVN 命令每次都要输入密码
Linux下SVN 命令每次都要输入密码
|
Linux
SVN 常用命令
检查 svn 是否已安装 安装好后 输入 svn --version 检查 svn --version 请在任何不清楚的时候使用 svn help 查看帮助 svn help 查看对应命令的帮助文档 svn help <subcommand> svn基本操作 版本库下的文件和目录列表 **查看项目 list (ls) ** 简写:svn ls 用法:svn list path svn list svn://xxx/abc 表示可以在不下载文件到本地目录的情况下来察看目录中的文件 导入操作 import 将源文件夹内容 导入到对应目标文件夹内容。将 demo1 中的所有内容,上传到服务
146 0
|
存储 NoSQL 开发工具
为什么互联网巨头们纷纷使用Git而放弃SVN?(内含Git核心命令与原理总结)
最近发现很多小伙伴对于工作中的一些基本工具的使用还不是很了解,比如:Git这个分布式的代码管理仓库,很多小伙伴就不是很了解,或者说不是很熟悉。甚至有些小伙伴都没听说过Git,就只会用个SVN。殊不知,当今各大互联网巨头和新兴起的互联网黑马公司,基本都是用的Git,而基本废弃了对SVN的使用。为什么呢?我们一起往下看。
265 0
为什么互联网巨头们纷纷使用Git而放弃SVN?(内含Git核心命令与原理总结)