svn命令
好的,以下是一些常用的 SVN 命令及其中文解释:
基础操作
-
检出 (Checkout - 首次获取仓库):
svn checkout <仓库URL> [本地目录名] # 缩写: svn co # 作用:从远程SVN仓库下载整个项目或特定目录到本地工作副本。这是开始工作的第一步。 -
更新 (Update - 获取最新改动):
svn update # 缩写: svn up # 作用:将本地工作副本与远程仓库同步。拉取其他人提交的改动,保证你本地是最新版本。 # 更新特定文件/目录:svn up [文件或目录路径] -
提交 (Commit - 上传你的改动):
svn commit -m "提交说明" # 缩写: svn ci # 作用:将你对本地工作副本所做的改动(添加、删除、修改的文件)上传到远程仓库。 # `-m` 后必须跟一个描述本次提交内容的**中文或英文**说明。非常重要! # 提交特定文件/目录:svn ci [文件或目录路径] -m "说明" -
添加 (Add - 标记新文件待提交):
svn add <文件名或目录名> # 作用:将**新创建**的文件或目录纳入版本控制?。标记它们,下次 `svn commit` 时会被上传到仓库。 # 注意:添加后文件状态变为 `A` (Added),需要 `commit` 才真正入仓库。 # 添加当前目录所有新文件:svn add . --force -
删除 (Delete - 标记删除待提交):
svn delete <文件名或目录名> # 缩写: svn del, svn rm # 作用:标记文件或目录从版本控制中删除?。本地文件会被删除,状态变为 `D` (Deleted),需要 `commit` 仓库才会移除。 -
状态 (Status - 查看本地改动状态):
svn status # 缩写: svn stat, svn st # 作用:查看工作副本中文件的状态。这是最常用的命令之一! # `?` - 未纳入版本控制 (未 `add`) # `A` - 已被 `add` 等待提交 # `D` - 已被 `delete` 等待提交 # `M` - 内容被修改 # `C` - 冲突 (需要解决) # `!` - 文件丢失或不完整(可能被误删) # `~` - 版本化项目被阻碍(如同名文件存在) # `I` - 忽略 # 使用 `svn status -v` 查看详细状态(包括版本号)。 -
差异 (Diff - 查看改动内容):
svn diff # 缩写: svn di # 作用:显示工作副本中尚未提交的改动具体内容(相对于基础版本)。 # 查看特定文件改动:svn diff <文件名> # 与特定旧版本比较:svn diff -r 旧版本号 [文件名] # 比较两个版本:svn diff -r 版本号1:版本号2 [文件或目录URL]
? 信息查看
-
日志 (Log - 查看提交历史):
svn log # 作用:显示当前工作副本(或指定URL)的提交历史记录,包括作者、日期、日志消息。 # 查看特定文件历史:svn log <文件名> # 限制显示条目数:svn log -l 10 (显示最近10条) # 查看特定版本的日志:svn log -r 版本号 # 查看某个版本区间:svn log -r 起始版本:结束版本 -
列表 (List - 查看仓库目录内容):
svn list <仓库URL> # 缩写: svn ls # 作用:列出远程仓库中特定URL路径下的文件和目录(**不下载文件内容**),类似于 `ls` 命令。 # 查看本地工作副本目录(需连接仓库):svn ls # 显示详细信息(类似 `ls -l`):svn ls -v <仓库URL> -
信息 (Info - 查看详细信息):
svn info # 作用:显示工作副本或指定URL的详细信息,如仓库URL、根URL、当前版本号(修订号)、最后修改的版本/作者/日期等。 # 查看特定文件/URL信息:svn info <路径或URL>
? 撤销与恢复
-
撤销本地修改 (Revert - 丢弃未提交的改动):
svn revert <文件名> # 作用:**丢弃**你对文件所做的**尚未提交**的本地修改,将其恢复到修改前(或最后一次更新时)的版本。 # 撤销整个目录及其子目录:svn revert -R <目录名>⚠️ 谨慎使用!此操作不可逆,会永久丢弃你的未提交工作。
-
恢复到旧版本 (Update to Revision):
svn update -r <版本号> # 作用:将工作副本中的文件**暂时**回退到指定的历史版本(只影响本地,不影响仓库)。用于查看旧代码或基于旧版本修复问题。 # 恢复到最新版本:svn update (不带 `-r`)注意:这本质上还是一个 Update 操作,只是指定了版本号。
? 分支与标签 (高级概念)
-
复制 (Copy - 创建分支/标签):
svn copy <源URL或路径> <目标URL或路径> -m "创建说明" # 缩写: svn cp # 作用:在仓库中创建一个副本。这是创建**分支 (branch)** 和 **标签 (tag)** 的基础命令。 # 例子 (在仓库内操作): # svn cp ^/trunk ^/branches/my-new-branch -m "创建用于开发新功能的分支" # svn cp ^/trunk ^/tags/release-1.0 -m "为1.0版本创建标签" # 例子 (本地工作副本操作): # svn cp trunk branches/my-new-branch (先切换到仓库根目录工作副本) # svn commit -m "提交新分支的创建" (本地复制操作需要提交) -
切换 (Switch - 切换工作副本指向不同分支/标签):
svn switch <目标分支/标签URL> # 缩写: svn sw # 作用:将你现有的工作副本切换到指向仓库中另一个分支或标签(通常是分支或标签的URL)。本地文件会被更新为目标路径的内容。 # 例子:svn switch ^/branches/my-new-branch (从 trunk 切换到 my-new-branch 分支) # 例子:svn switch ^/tags/release-1.0 (切换到 release-1.0 标签) # 切换回主干:svn switch ^/trunk
? 解决冲突
- 标记冲突已解决 (Resolve):
svn resolve --accept working <冲突文件名> # 作用:当文件发生冲突(`svn st` 显示 `C`)并手动解决冲突后(编辑文件,删除 `.mine`, `.rOld`, `.rNew` 文件),使用此命令告诉SVN冲突已解决。 # `--accept working`:告诉SVN你选择保留当前工作副本中合并后的文件内容作为最终解决版本。 # 其他常用 `--accept` 选项: # `--accept theirs-full`:完全使用他人版本(丢弃你的改动) # `--accept mine-full`:完全使用你的版本(丢弃他人改动) # `--accept theirs-conflict`:接受他人对冲突块的修改(仅冲突区域) # `--accept mine-conflict`:接受你对冲突块的修改(仅冲突区域)解决冲突后必须运行此命令!
帮助
- 帮助 (Help):
svn help # 查看所有命令的帮助 svn help <命令名> # 查看特定命令的详细帮助和使用说明(非常有用!) # 例如:svn help commit
? 重要提示:
<仓库URL>:通常以http://,https://,svn://或file://开头。^/符号:在SVN命令中,^/代表仓库的根URL(在你配置的工作副本中有效)。[ ]中的内容:表示命令参数是可选的。- 提交说明 (
-m): 每次提交务必提供清晰、简洁的说明,描述你做了什么改动。这是良好的版本控制习惯。 - 先更新再提交 (
svn upbeforesvn ci): 在提交前总是先运行svn up,解决可能出现的冲突后再提交,可以减少冲突的概率和复杂性。
选择你需要的命令进行尝试吧!如果有具体场景或遇到问题,随时可以再问。?
如何使用SVN进行LabVIEW代码版本控制呢?
其实我们在安装Visual SVN的时候就指定了代码仓库保存位置。此后只要我们通过Visua SVN管理界面去创建代码仓库,就可以将代码保存在这个指定的路径里。
2023-05-30 09:28:48
为什么Git把SVN拍在了沙滩上?精选资料分享
Git和SVN是大家都比较熟知的版本管理,近几年Git越来越受到大家的喜欢。下面就来分享下关于Git和SVN的内容。Git vs SVN...
为什么说Git把SVN拍在沙滩上了呢?
Git和SVN是大家都比较熟知的版本管理,近几年Git越来越受到大家的喜欢。 下面就来分享下关于Git和SVN的内容。 Git vs SVN
2021-04-30 11:57:43
linux的Shell命令和相关的命令
如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的
2019-10-03 13:14:00
Linux svn管理工具的12个命令详细讲解
目前,绝大多数开源软件都使用svn作为代码版本管理软件。本文结合实例向大家介绍Linux svn经常使用的12个常用命令。本文从目录
linux svn和checkout的代码迁移
#svn co http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 --password 密码
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 如何进行编码器的正确接线?接线方法介绍
- 什么是场效应管?它的作用是什么?
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- amoled屏幕和oled区别
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 苹果笔记本macbookpro18款与19款区别
- 通讯隔离作用
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机