工作中SVN的使用

2321 字
12 分钟
工作中SVN的使用

一、svn是什么?#

  • 集中式版本控制(Centralized VCS)。

  • 所有历史版本集中存放在一台服务器,本地只保留当前工作副本。

  • 核心概念:

    中央仓库:SVN 采用客户端-服务器模式。所有文件的历史版本都集中存储在一个中央服务器上。
    工作副本:开发者从中央服务器“检出”一份文件到自己的本地电脑,这份本地的文件就是工作副本。
    版本记录:SVN 会记录每一次文件提交,包括:谁、在什么时候、修改了哪些内容、以及为什么修改。每个版本都有一个唯一的版本号。
    提交与更新:
    提交:当你修改完本地代码后,通过“提交”操作将变更同步到中央服务器,从而创建一个新的版本。
    更新:通过“更新”操作,将本地工作副本与中央服务器的最新版本同步,获取其他同事的修改。

二、有了git,为啥还需要svn?#

  1. 历史原因:大量现存的老项目跑在 SVN 上,迁移成本和风险高。
  2. 场景需求:对于需要严格目录级权限控制频繁处理大型二进制文件(如游戏美术资源)的团队,SVN 的方案可能更简单、更稳定。
  3. 团队习惯:对于非技术背景成员较多或团队习惯已定的情况,SVN 的统一、简单的工作流更容易管理和维护。

结论就是:工具没有绝对的好坏,只有是否适合当前的团队和项目。 Git 在绝大多数软件开发场景下是更优的选择,但 SVN 在它的特定领域内,依然是一个可靠、甚至是更合适的选择。

三、svn的安装#

svn是分为服务端和客户端的。对于我们使用者来说只用安装svn的客户端就行。就像git一样我们本地也是需要安装git的客户端,而服务端比如gitlab是不需要我们安装的。svn客户端的安装很简单,除了下图需要单独设置一下,其他的只要一直点击下一步即可!只有安装的时候选择下面这个 Command Line Client Tools 的时候,你的安装目录的bin目录下面才有svn.exe文件。这样,后续,在idea中集成svn的时候才可以选择它。

svn客户端安装
svn客户端安装

四、SVN的基本操作#

1、检出操作#

  • 拿到仓库地址URL ,鼠标右击空白区域-点击SVN检出

右击空白区域
右击空白区域

  • 在检出界面,填仓库地址URL ,默认检出地址,就是你点击的空白区域所在目录

检出
检出

  • 认证界面,填写用户名/密码

认证界面
认证界面

  • 出现如下界面,便是检出成功

    检出成功
    检出成功

2、提交文件#

新增文件需要add之后,才能commit到远程仓库,或者在commit的时候选择未add的文件进行提交,修改的文件commit的时候默认是勾选的。当前目录空白区域鼠标右击,然后点击commit的时候,是commit当前目录下未commit的文件。如果点击某个文件右击的话,commit的就是当前文件。

commit
commit

出现如下界面,填写提交信息后点击Ok提交:

commit信息
commit信息

3、更新文件#

更新
更新
4、查看历史版本#

通过查看历史版本,可以看到别人的提交记录,以及提交了什么文件。

查看历史日志
查看历史日志

点击之后出现如下历史提交记录界面

提交日志
提交日志

5、回滚#

点击下面按钮,进入回滚界面

回退版本
回退版本

进入回退版本界面,点击Show log查看历史提交记录,查看要回退的版本号

提交日志
提交日志

填写要回退的版本的版本号进行回退

回退版本2
回退版本2

6、分支操作#

​ 正常情况需要进行分支操作的时候,我们需要建立如下三个目录:

目录名用途优点
trunk主开发线,存放最新的稳定代码便于集中开发、持续集成
branches用于并行开发、功能分支、修复分支等支持多人协作、功能隔离、风险控制
tags用于标记发布版本(如 v1.0、v2.0),通常只读,不修改便于版本回溯、发布管理、归档
6.1 新建分支#

基于主干新建分支的时候,右击主干分支,按下图选择新建分支。

新建分支
新建分支

进入如下界面,填写对应信息,新建分支

新建分支-详情
新建分支-详情

需要注意的是,新建完分支之后,需要在update一下,本地对应目录才会有对应分支代码。

6.2 合并分支#

将分支内容合并到主干(branch => trunk),按如下步骤进行合并:

  • 右击主干目录,点击 Merge 进行合并

合并1
合并1

  • 进入如下界面直接点击下一步即可

合并2
合并2

  • 进入如下界面,填写对应合并信息后,点击Next

合并3
合并3

  • 一般按照默认就好 先点击 Test merge ,进行合并测试,合并测试没问题,再点击 Merge 合并

合并4
合并4

需要注意的是,合并仅仅是合并到本地文件夹目录,所以合并完成后,记得要Commit提交到SVN。

合并5
合并5

6.3 切换分支#

右击需要切换分支的工作目录,选择 Switch 进入切换分支模块

切换分支
切换分支

进入切换分支界面之后,选择要切换的分支,点击 OK

切换分支2
切换分支2

7、文件冲突#

当你在合并代码或者更新代码的时候,就有可能会出现冲突,发生文件冲突的时候,会出现如下界面:

冲突1
冲突1

右击冲突文件,选择 Edit conflicts,编辑冲突文件

冲突2
冲突2

进入如下界面后,按照图示进行冲突处理:

冲突3
冲突3

冲突处理完成之后,点击 Save 保存

冲突4
冲突4

如果冲突处理完成,并且 点击的 Mark as resolved ,即标记为已解决,则之前文件前的冲突标识消失。

冲突5
冲突5

五、idea集成SVN的基本使用#

1、idea集成svn#

idea的settings里面找到Version Control里面的 Subversion下配置本地安装的svn路径

idea集成svn
idea集成svn

idea上方工具栏出现 SVN,则说明idea集成SVN成功!

idea集成svn2
idea集成svn2

2、提交、更新代码#

点击下图对应按钮,即可提交代码、更新代码。

idea-提交更新
idea-提交更新

点击提交代码,会出现如下界面,选择要提交的文件以及填写提交信息,之后点击 Commit 提交代码。需要注意的是SVN是没有

本地仓库的概念的,提交就是直接提交到远程仓库,类似GIT的提交界面中的 Commit and Push

idea-提交详情
idea-提交详情

idea右下角弹出如下界面就是提交成功!

idea-提交成功
idea-提交成功

点击更新代码会出现如下界面,直接点击 OK 便是更新当前分支代码。

idea-更新代码
idea-更新代码

3、查看历史版本#

SVN查看历史版本需要选中你要查看的文件,如果是要查看当前工程的历史提交记录,则右击工程目录。如果没有,选中任何文件,则查看的默认是你当前编辑区域窗口打开的文件的历史记录。

idea-历史记录
idea-历史记录

点击 Show History之后便会出现如下历史记录界面。

idea-历史记录2
idea-历史记录2

4、回滚#

回滚也是点击更新代码的按钮,然后,进入如下界面之后就不能直接点击 OK了,而是按照下图步骤进行操作:

idea-回滚
idea-回滚

5、分支操作#

5.1 新建分支#

SVN → Subversive → Branch or Tag 创建新的分支

idea-创建分支1
idea-创建分支1

点击新建分支,出现如下界面,可按图示进行分支创建

idea-创建分支2
idea-创建分支2

5.2 切换分支#

如果上面我们没有勾选,切换分支,那么此时我们也可以通过如下操作来切换分支。同样,切换分支也是点击更新代码的按钮,然后,按照下图进行操作:

idea-切换分支
idea-切换分支

5.3 合并分支#

按照下图操作,进入选择分支界面。下面的操作是将其他分支代码合并到当前分支。

idea-合并分支
idea-合并分支

进入选择分支界面,选择需要合并过来的分支。

idea-合并分支2
idea-合并分支2

点击 Merge All

idea-合并分支3
idea-合并分支3

点击 Continue merge 完成合并!

idea-合并分支4
idea-合并分支4

6、文件冲突#

idea里面的冲突文件会爆红,如下图,右击冲突文件,按照下图点击 Resolve Text Conflict 解决冲突

idea-解决冲突
idea-解决冲突

出现如下界面,根据需要按照下图示进行对应操作

idea-解决冲突2
idea-解决冲突2

当选则手动合并的时候,会出现如下界面,可根据需求按照下图示做对应操作

idea-解决冲突3
idea-解决冲突3

处理冲突之后,文件变蓝色,成待commit文件

idea-解决冲突4
idea-解决冲突4

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
工作中SVN的使用
https://study-docs-158.pages.dev/posts/工作中svn的使用/
作者
我的学习小铺
发布于
2026-08-01
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
我的学习小铺
学而时习之
分类
标签
最新动态
站点统计
文章
44
分类
8
标签
9
总字数
126,514
运行时长
0
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.15.3
文章许可
CC BY-NC-SA 4.0