1. SVN简介

1.1 什么是SVN

  • 代码版本管理工具
  • 代码修改记录
  • 恢复到历史版本

1.2 SVN与Git

svn优势:

  • 使用简单,上手快
  • 目录级全限控制
  • 子目录checkout,减少不必要的文件检出

1.3 主要应用

  • 开发人员用来做代码的版本管理
  • 用来存储一些重要的文件,比如合同
  • 公司内部文件共享,并且能按目录划分全限

1.4 SVN仓库

推荐:svnbucket,SVN桶

svnbucket:https://svnbucket.com/

现在最好用的SVN服务

1.5 安装SVN客户端

image-20220117113324695

汉化:

image-20220117113823388

  • Cornstone

2. SVN基础操作

  • 登录SVNBucket网站,创建项目

image-20220117114405260

2.1 检出 checkout

  • 复制SVN仓库地址

image-20220117114737849

  • 在我们的工作目录下

image-20220117114625945

image-20220117114831985

image-20220117114937689

检出成功,并且文件带有一个标识符!

image-20220117165555121

2.2 新增 add 提交 commit 更新 update 历史记录

我们复制一些文件到我们的项目目录

image-20220117165719201

右键,SVN提交

image-20220117165950664

选中需要提交的文件,填写提交信息。

image-20220117170132204

在SVNBucket网站,可以看到提交的内容

image-20220117170311752

当我们修改文件后,被修改的文件会出现红色感叹号

image-20220117170708303

右键,提交,我们可以双击文件,查看文件变更的内容!

image-20220117170803687

进入SVNBucket可以查看提交记录

image-20220117171114640

2.3 查看日志

右键,选择TortoiseSVN,选择显示日志

image-20220117171836124

image-20220117171948756

每次提交之前,尽量要进行一次SVN更新,防止冲突,覆盖别人的文件!

image-20220117172129178


3. 撤销和恢复

  • 撤销本地修改
  • 撤销已提交内容
  • 恢复到指定版本

当我们修改文件错误时,右键文件,选择TortoiseSVN,选择SVN还原

image-20220117172949599

当我们对文件进行了错误的修改,并进行了提交

image-20220117173232518

我们可以在提交日志中,选择提交记录,右键,复原此版本做出的修改

image-20220117173405503

这样撤销只是在本地撤销了,需要重新提交到服务端!!


4. 添加忽略

有时候,有些文件或者文件夹不想提交,我们可以添加忽略

可以右键该文件或者文件夹,选择TortoiseSVN,选择去除版本控制并增加到忽略列表

image-20220117174224144

再提交时,被忽略的文件就会显示已被删除!

image-20220117174505542

从忽略列表删除

image-20220117175034349


5. 解决冲突

什么情况容易发生冲突?

  • 多个人修改了同个文件的同一行
  • 无法进行合并的二进制文件

怎么避免冲突?

  • 经常update同步下他人的代码
  • 二进制文件不要多个人同时操作

解决冲突:

  • 编辑冲突
  • 使用”他们的“文本块解决冲突
  • 使用”我的“解决有冲突的文件

image-20220117175553569


6. 分支

什么时候需要开分支?

  • 隔离线上版本和开发版本
  • 大功能开发,不影响到其他人,自己独立开个分支去开发

SVN经典目录结构:

  • trunk
  • branches
  • tags

我们可以手动创建三个文件夹:

image-20220118090048046

将我们的文件都移动到trunk(主分支)目录下:

image-20220118090115483

然后提交

image-20220118090213977

创建分支:

image-20220118090640469

image-20220118090749845

这样分支就创建完成了。

我们更新一下,就可以看到branches中的分支了。

image-20220118091146955

随着开发时间越来越长,我们的分支可能会越来越多,我们可以把分支单独checkout下来。

右键分支目录,点击属性。

image-20220118091431000

同时,我们可以把trunk单独checkout下来

删除原来的目录,这样我们就保留了分支目录,和主干分支

image-20220118092147948

这样,当我们在修改了主干中的内容的时候,是不会影响到分支中的内容的。

我们可以创建新分支:

image-20220118093705729

image-20220118093748249

这样,我们就有了最新的v2.0版本,我们可以将本地的v1.0切换到v2.0

image-20220118093845868

image-20220118094029779

但是,本地文件夹的名字,需要我们自己手动去修改。

image-20220118094111203


7. 代码暂存

代码暂存作用:

  • 代码改了很多,突然需要紧急修复一个bug,但是代码还没写完,不能提交。
  • 代码重构了很多,突然需要发布新版本,但是代码还跑不起来,不能提交。

image-20220118094618705

image-20220118094916079

我们也可以取出暂存:

image-20220118095002937

image-20220118095435470

Last modification:March 2nd, 2022 at 11:52 am
贫困山区儿童,谢谢打赏