svn用法

SVN是什么?

代码版本管理工具
他能记住你每次的修改
查看所有的修改记录
恢复到任何历史版本
恢复已经删除的文件

SVN跟Git比,有什么优势

使用简单,上手快
目录级权限控制,企业安装必备
子目录Checkout,减少不必要的文件检出

主要应用:

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

SVN仓库(服务端)

推荐:svnbucket.com,  svn桶
现在最好用的svn服务

安装SVN客户端

TortoiseSVN (Windows)
Cornstone    (Mac苹果本)

下载步骤:

注册账号

在这里插入图片描述

下载

在这里插入图片描述

下载对应的版本

在这里插入图片描述

下载对应的汉化语言包(这一步看个人习惯)

在这里插入图片描述

安装(双击,一路下一步即可)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

点击鼠标右键

在这里插入图片描述

汉化安装

在这里插入图片描述

在这里插入图片描述

在次右键

在这里插入图片描述

SVN基本操作

创建项目测试

在这里插入图片描述

复制地址

在这里插入图片描述

检出 checkout

在你的工作目录中右键检出
在这里插入图片描述
在这里插入图片描述
登录网站的用户名密码
在这里插入图片描述
检出完成,目录上出现绿色的勾
在这里插入图片描述

新增 add 提交commit

在刚才创建的文件夹中添加一些目录
在这里插入图片描述
在这里插入图片描述
勾选想要提交的文件 并进行描述
在这里插入图片描述
在这里插入图片描述
可以在SVN的官网上查看提交的目录
在这里插入图片描述

更新 update

修改一些文件,变为红色
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以双击查看修改的内容
在这里插入图片描述
可以看出代码有变化了
在这里插入图片描述

历史记录

在这里插入图片描述
可以双击看到历史记录的文件
在这里插入图片描述

撤销和恢复

撤销本地修改

eg:在这个文件里添加一些错误的修改
在这里插入图片描述
在这里插入图片描述
变为绿色勾
在这里插入图片描述

撤销已提交记录

进入到日志记录
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210103121749723.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FhMzU0在这里插入图片描述
在这里插入图片描述

这只是还原到本地
在这里插入图片描述
重新提交
在这里插入图片描述
恢复到正常
在这里插入图片描述

恢复到指定版本

打开日志记录
在这里插入图片描述
重新提交
在这里插入图片描述

忽略提交

在这里插入图片描述
在这里插入图片描述
在次提交可以看出忽略的文件
在这里插入图片描述
可以看出没有svn的状态提交了
在这里插入图片描述
如果是目录里面的提交忽略,在这个目录里面的文件进行忽略.
在这里插入图片描述
如果又不想忽略,在加进来
在这里插入图片描述

解决冲突

什么情况下容易发生冲突?
多个人修改了同个人文件的同一行
无法进行合并的二进制文件
怎么避免冲突?
经常update同步下它人的代码
二进制文件不要多个人同时操作
冲突了怎么办?
很简单。

修改同一行

注意:选中一个文件Update只会更新这一个文件
在这里插入图片描述
使用别人的版本,是用自己的版本,手动编辑
在这里插入图片描述

使用远程文件提交,就是使用别人的为准
在这里插入图片描述
标记为解决
在这里插入图片描述

修改二进制文件(eg:图片)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择你想用的版本
在这里插入图片描述

分支

什么时候需要分支?
隔离线上版本和开发版本
大功能开发,不影响到其他人,自己独立开发分支去开发

SVN经典目录结构
trunk:主干 branches:分支 tages:标签

可以在创建目录的时候勾选自动创建(1.)
在这里插入图片描述
也可以手动创建(2.)
在这里插入图片描述

在主干上开分支
在这里插入图片描述
选中分支路径
在这里插入图片描述
更新
在这里插入图片描述
这样会带来一个问题,将来分支越来越多,更新的内容也会越来越多。解决:单独的checkout一份出来
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
同理主干也单独的checkout一份·出来
在这里插入图片描述
只剩下主干和分支了
在这里插入图片描述
这样修改分支也不会影响主干了,现在在分支上修改了一个bug提交后但是主干没有修改,如何解决?不用再主干上在进行一次修改提交,直接合并即可

在这里插入图片描述
选中几个合并几个,合并到主干
在这里插入图片描述
在这里插入图片描述
之后再主干上进行提交
在这里插入图片描述
切换分支:多个分支可以进行切换
在这里插入图片描述
在这里插入图片描述
切换好后名字还需要自己改
在这里插入图片描述

代码占存

有什么用:1.代码修改了很多,突然需要紧急修改一个bug,但是代码还没写完,不能提交。
2.代码重构了很多,突然需要发布新版本,但是代码还跑不起来,不能提交。
在这里插入图片描述
在这里插入图片描述
Shelve: 存储之后会把本地的修改撤销掉 Checkpont:暂存后本地的修改还会保留
恢复暂存
在这里插入图片描述

复杂代码合并

情况:主干开发新功能,改了很多
分支是线上版本,修复了很多bug
两个分支的代码时间久了差异很大,无法直接分支合并或者指定提交记录合并代码

使用BeyondCompare工具 https://www.bilibili.com/video/BV1k4411m7mP?p=8

Guess you like

Origin blog.csdn.net/aa35434/article/details/112132187
svn