首页 > 其他分享 >SVN 学习笔记

SVN 学习笔记

时间:2023-05-27 17:13:18浏览次数:37  
标签:SVN 选择 版本 文件 笔记 学习 右键 提交

SVN 简介和安装

SVN是什么?

  • 代码版本管理工具
  • 它能记住你每次的修改
  • 恢复到任何历史版本
  • 恢复已经删除的文件

SVN跟Git相比,有什么优势?

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

SVN 主要应用

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

SVN仓库

推荐:svnbuket.com,SVN桶
现在最好用的SVN服务

安装SVN客户端

TortoiseSVN ——Windows
Cornstone ——Mac

SVN 基本操作

  • 检出 checkout
  • 新增 add
  • 提交 commit
  • 更新 修改之后重新提交
  • 历史记录

示例

(1)新建一个项目(仓库)

image.png
创建完成之后,选择右上角的地址,复制
image.png

(2)检出 checkout (从仓库中拿出来)

image.png
鼠标右键,选择 SVN checkout
image.png
image.png

输入用户名和密码(网站该仓库的名,和账号的密码)
image.pngok之后
image.png

(3)创建几个文件提交上去 commit

image.png
右键,选择 SVN commit,选择要添加的文件,再添加提交信息
image.png
ok之后
image.png
在远端仓库刷新
image.png
还可以看到提交记录
image.png

(4)更新操作 修改之后重新提交

打开1.txt,添加”1234“,测试一下
image.png
选择右键,SVN commit
image.png
我们可以双击1.txt,可以看到变更的内容
image.png
选择ok后
image.png
网站上看到变更记录
image.png

(5)查看日志

image.png
这样我们就可以看到所有的提交记录了
image.png

SVN update 使用

在每次提交之前,我们可以使用右键,选择 SVN update,更新一下,避免冲突。

SVN 撤销和恢复

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

撤销本地修改

(1)例如 修改1.txt文件 添加了67
image.png
(2)已经保存了,退出来了。这是我们不想修改了。
右键,选择 乌龟SVN,选择 Revert
image.png
或者 在SVN 提交里面,选择1.txt,右键 SVN 还原
image.png
点击还原之后,选择要还原的文件,确定
image.png

撤销已提交内容

(1)先修改1.txt内容,提交上去
image.png
官网看见:
image.png
本地查看日志:(也可以看见)
image.png
选择错误的提交版本,右键选择红框
image.png
注意恢复之后,要重新提交

恢复到指定版本

本地查看日志:(也可以看见):选择要恢复的某个版本
image.png
注意恢复之后,要重新提交

SVN 添加忽略

(1)有些时候我们有些文件不想提交,可以选择忽略
image.png
现在重新提交,他会把那些文件都删除
image.png
(2)我们也可以在提交时,忽略
image.png
(3)现在我们不想忽略了,可以选择 从忽略列表中删除
image.png
现在就又可以提交了
image.png

SVN 解决冲突

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

选择 SVN update,发生冲突。

  • 编辑冲突
  • 使用他们的
  • 使用我的
  • 标记已解决

image.png
编辑冲突
image.png

分支

  • 什么时候需要分支?
    • 隔离线上版本和开发版本
    • 大功能开发,不想影响到其他人,自己独立开个分支去开发
  • SVN 经典目录结构
    • trunk 主干
    • branches
    • tags

创建经典目录

(1)可以在创建项目时,直接选择创建
image.png

(2)也手动创建 3个目录
image.png
然后把那2个文件,放到trunk上,然后提交
image.png
这样目录结构就正确了
image.png
image.png

创建分支

image.png
修改路径等信息
image.png
image.png
更新 SVN update,就可以看到onlinev1.0
image.png

切换分支

代码暂存

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

这时就需要我们暂存。

image.png
image.png

取消暂存

image.png
image.png

复杂代码合并

  • 情况

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

  • 使用工具 BeyondCompare

标签:SVN,选择,版本,文件,笔记,学习,右键,提交
From: https://www.cnblogs.com/swbna/p/17436989.html

相关文章

  • SA后缀数组学习笔记
    什么是后缀数组后缀数组主要是用来处理字符串的,分为两种方法:倍增法以及DC3,但由于倍增法通俗易懂,码量小,常数小,所以今天这篇文章我就只介绍倍增法(不可能是因为我不会DC3)前缀知识No.1基数排序跟桶排序差不了多少,思想就是:将整数按位数切割成不同的数字,然后按每个位数分别比较。......
  • 花朵识别系统Python实现,基于深度学习卷积神经网络算法
    一、背景花朵识别系统,基于Python实现,深度学习卷积神经网络,通过TensorFlow搭建卷积神经网络算法模型,并对数据集进行训练最后得到训练好的模型文件,并基于Django搭建可视化操作平台。在当今信息化社会,图像识别技术在各种领域都展现出了重要的应用价值,包括医学影像分析、自动驾驶、人脸......
  • Git 学习笔记
    笔记来源视频链接:黑马程序员Git全套教程,完整的git项目管理工具教程,一套精通git_哔哩哔哩_bilibiliGit基础命令操作(本地仓库)配置用户名和Email右键打开GitBash:gitconfig--globaluser.name"用户名"gitconfig--globaluser.email"邮箱地址"Git结构1.创建本地......
  • tracer ftrace笔记(17)——atrace命令抓trace
    一、atrace命令解析1.帮助信息#atrace-h用法:usage:atrace[options][categories...]选项包括:-aappname为逗号分隔的cmdlines列表启用应用程序级跟踪;*是匹配任何进程的通配符-bN使用大小为NKB的跟踪缓冲区-c......
  • 最小生成树学习笔记
    什么是最小生成树一个图中可能存在多条相连的边,我们从一个图中挑出一些边生成一棵树(树就是指一个无向连通图不包含回路(连通图中不存在环))。这仅仅是生成一棵树,还未满足最小,当图中每条边都存在权重时,这时候我们从图中生成一棵树(n-1条边)时,生成这棵树的总代价就是每条边......
  • 思考-关于纸质还是电子笔记
    原因有长期用纸质记录规划每天生活的习惯,但是由于长期使用键盘打字,在使用纸笔写字的过程中,写字速度有点慢,手写速度更不上大脑的思考速度;其次,手部手写过程中出现不适感,而在打字的过程中,虽然有打错字的概率,但总体上还行。纸质的好处写作的内容较为随意写作的方式、风格较为......
  • Lupin的linux学习路(ubuntu)
    Lupin的linux的学习路(Ubuntu)安装Ubuntu双系统制做一个系统引导u盘(到Ubuntu官网下载镜像,使用rufus镜像写入软件将镜像写入到u盘中,写入成功后,引导u盘制做完成)。在Windows系统中分出200G的空余磁盘空间安装Ubuntu系统。电脑关机,插上引导u盘,进入电脑引导选项,进入Ubuntu安......
  • markdown学习
    一级标题阿打算二级标题三级标题四级标题字体helloworldhelloworld~helloworld~helloworld引用引用内容1111分割线列表列表1列表2列表四列表列表列表列表列表第一第二tasktasktask制表符tables项目价格数量计算器12......
  • raft笔记
    目的:一致性算法,允许一组机器作为一个一致的组来工作,这些组可以承受某些成员的故障,提高可用性领导选举,日志同步,快照,集群变动复制状态机用于解决分布式系统中的各种容错问题,会出现共识算法共识和复制状态机通过保持复制日志的一致性raft是一种日志复制算法Raft通过首先选举一个......
  • 人工智能导论——机器人自动走迷宫&强化学习
    一、问题重述强化学习是机器学习中重要的学习方法之一,与监督学习和非监督学习不同,强化学习并不依赖于数据,并不是数据驱动的学习方法,其旨在与发挥智能体(Agent)的主观能动性,在当前的状态(state)下,通过与环境的交互,通过对应的策略,采用对应的行动(action),获得一定的奖赏(reward)......