当前位置: 首页 > news >正文

对git中tag, branch的重新理解

1. 问题背景

项目中之前一个tag(v1.0)打错了,想删除它,但我们从此tag v1.0中迁出新建分支Branch_v1.0,在此分支下修复了bug,想重新打一个tag v1.0,原来的tag v1.0可以删除掉吗?

错误的理解:按我之前的理解,Branch_v1.0是从原来的tag v1.0中迁出,对tag v1.0有引用,而新打的tag又是基于Branch_v1.0,对Branch_v1.0存在引用,从而Branch_v1.0不可以删除,自然而然,原来的tag v1.0也不能删除。所以新打的tag只能换一个名字。

2. 解决方法

  • 本地建了个git仓库,模拟这种情况,下图展示的就是一上问题背景中描述的场景,tag v1.0为错误标签,master分支已经离开tag1.0的位置,有新的提交,此时发现v1.0有问题,所以从tag v1.0中迁出并创建新分支Branch_v1.0,修复了问题,然后新建tag v1.0.0(经过查看git文档可知,原来的tag1.0假设没有推送的远程,是可以直接删除掉,然后新的tag就取名v1.0,没问题或直接在新建tag时,直接用选项强制覆盖名称v1.0。但是若tag已推送到远程,其他人已经获取到了,这样删除就不太明智了,除非你删除后,通知其他人将本地仓库重新git clone ),此时可以删除Branch_v1.0吗?删除后,tag v1.0.0还能用吗?

    图标说明下:红色表示当前工作分支,绿色表示各个分支的最后一次提交,黄色表示tag,绿色+黄色,表示在绿色下面打的标签,并在同一位置,三个颜色在一起类比即可
    在这里插入图片描述

  • TortoiseGit中没找到删除分支的菜单,直接用命令操作。删除后,发现新建的tag v1.0.0没有影响,都还在。
    在这里插入图片描述

  • 继续操作,删除tag v1.0 ,然后看下仓库图,发现v1.0.0此时不再从tag v1.0流出(tag v1.0已被我删除),而是从 24dd6155 中流出, 这个24dd6155就是tag v1.0引用的git提交id号,从删除tag的命令行可知,tag v1.0引用的就是24dd6155。
    在这里插入图片描述
    在这里插入图片描述

综上所述,可以得出结论,tag, branch引用的是提交id(git每一次提交都会生成一个唯一id),不是某个tag或branch, 删除tag或branch不用对git的提交数据产生影响

有了这个认识,针对以上问题,就有了相应的解决方案了,即原来的tag1.0假设没有推送的远程,是可以直接删除掉,然后新的tag就取名v1.0,没问题或直接在新建tag时,直接用选项强制覆盖名称v1.0。但是若tag已推送到远程,其他人已经获取到了,这样删除就不太明智了,除非你删除后,通知其他人将本地仓库重新git clone。

http://www.lryc.cn/news/280223.html

相关文章:

  • python中none的替换方法:pandasnumpy
  • 您与此网站之间建立的连接不安全
  • __declspec (dllexport)定义了导出函数,但dll中没有此函数
  • CSS样式学习
  • 传感数据分析中的小波滤波:理论与公式
  • iOS 按钮添加点击震动
  • 李沐-《动手学深度学习》--02-目标检测
  • 【EAI 006】ChatGPT for Robotics:将 ChatGPT 应用于机器人任务的提示词工程研究
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?
  • Rustdesk本地配置文件存在什么地方?
  • 36-javascript输出方式,弹框:普通,confirm弹框,prompt弹框,控制台输出:普通,warm,error
  • 自动执行 Active Directory 清理
  • DICE模型的原理与推导、碳循环与气候变化、政策评估、不确定性分析与代码分析
  • 【机器学习前置知识】狄利克雷分布
  • Spring Retry(方法重试、方法重新调用)
  • JavaScript音视频,使用JavaScript如何在浏览器录制电脑摄像头画面为MP4视频文件并下载视频文件到本地
  • IaC基础设施即代码:使用Terraform 连接 alicloud阿里云
  • Vue3 如何使用移动端调试工具vConsole
  • 【物流管理系统-Python简易版】
  • Vue学习笔记六--Vue3学习
  • 21.在线与离线MC强化学习简介
  • 控制网页的灰度显示
  • 科研绘图(四)火山图
  • 超强站群系统v9.0:最新蜘蛛池优化技术,一键安装,内容无缓存刷新,高效安全
  • torch.fx的极简通用量化教程模板
  • rpc的正确打开方式|读懂Go原生net/rpc包
  • 【信号与系统】【北京航空航天大学】实验二、连续时间系统的时域分析【MATLAB】
  • 【Linux 内核源码分析笔记】系统调用
  • mysql清空并重置自动递增初始值
  • 计算机算法之二分算法