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

【随笔】Git 高级篇 -- 快速定位分支 ^|~(二十三)

请添加图片描述

  • 💌 所属专栏:【Git】

  • 😀 作  者:我是夜阑的狗🐶

  • 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询!

  • 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘

请添加图片描述

文章目录

  • 前言
  • 一、快速定位分支
      • 1、介绍
      • 2、示范
      • 3、实战
        • (1)第一种方法
        • (1)第二种方法
  • 总结


前言

  大家好,又见面了,我是夜阑的狗🐶,本文是专栏【Git】专栏的第二十三篇文章;
  这是今天学习到Git 高级篇 --快速定位分支 💖💖💖,开启新的征程,记录最美好的时刻🎉,每天进步一点点。
  专栏地址:【Git】 , 此专栏是我是夜阑的狗对Git,Gitee等工具使用过程的总结,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。
  如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。


一、快速定位分支

  这里给大家推荐一个好用的 Git在线练习地址。在这练习网站里面也有自己的教程,就让我们一步一步跟着教程学习吧,记录下自己的所感所悟。前面已经简单的学习了管理合并多分支,接下来就让我们看看在实际项目过程中是怎么快速定位分支的吧。话不多说,让我们原文再续,书接上回吧。

请添加图片描述

1、介绍

  操作符 ^~ 符一样,后面也可以跟一个数字。但是该操作符后面的数字与 ~ 后面的不同,并不是用来指定向上返回几代,而是指定合并提交记录的某个 parent 提交。还记得前面提到过的一个合并提交有两个 parent 提交吧,所以遇到这样的节点时该选择哪条路径就不是很清晰了。
  Git 默认选择合并提交的“第一个” parent 提交,在操作符 ^ 后跟一个数字可以改变这一默认行为。

2、示范

  这里有一个合并提交记录。如果不加数字修改符直接切换到 main^,会回到第一个 parent 提交记录。

git checkou main^

  运行结果如下图所示:

请添加图片描述

  现在来试试选择另一个 parent 提交……

git checkou main^2

  运行结果如下图所示:

请添加图片描述

  使用 ^~ 可以自由地在提交树中移动,非常给力:

git checkout HEAD~
git checkout HEAD^2
git checkout HEAD~2

  运行结果如下图所示:

请添加图片描述

  更厉害的是,这些操作符还支持链式操作!试一下这个:

git checkout HEAD~^2~2

  运行结果如下图所示

请添加图片描述

  虽然和前面的结果一样,但是我们发现只用了一条命令就能完成了。要完成此关,在指定的目标位置创建一个新的分支。很明显可以简单地直接使用提交记录的哈希值(比如 C6),但这里作者要求你使用刚刚讲到的相对引用修饰符!

3、实战

  从前面了解到具体的实现的步骤,就可以开始实战啦。这里先给大家说一下这个练习网站的一些使用技巧,

  • help 指令

  执行这个命令后就会有个帮助信息的弹窗。

在这里插入图片描述

  • levels 指令

  执行完这个命令之后就能看到关卡目录了。

在这里插入图片描述

  • 目标

在这里插入图片描述

  • 开始结构

在这里插入图片描述

(1)第一种方法

  可以先移动 HEAD 指针来指向 C2 ,然后在创建分支名,这种方法比较繁琐一点。

  • Step 1、指向 C2

  通过链式操作指向 C2 提交记录,进入分离 HEAD 状态;

git checkout HEAD~1^2~1

  运行结果如下图所示:

在这里插入图片描述

  • Step 2、创建 bugWork 分支

  通过指定的 HAED 创建对应的分支;

git branch bugWork

  运行结果如下图所示:

在这里插入图片描述

  • Step 3、指向 main

  最后在把 HEAD 指针重新指向 main 分支;

git checkout main

  运行结果如下图所示:

在这里插入图片描述

(1)第二种方法

  我们可以直接通过创建分支的同时指定对应位置即可,这样就能一条命令实现,该方法比较简洁,以下是具体实现多种方式。

  • ^ 和 ~ 符号混用

  这是个人比较推荐的方式,在实际操作过程中往往提交记录之间的层级关系都是很深的,能把两种操作符进行配合使用将会大大减少指令繁琐程度。

git branch bugWork main~^2~

  也可以使用 HEAD 指针或者哈希值进行指定位置。

git branch bugWork HEAD~^2^
  • ^ 符号单用

  对于层级不那么深的提交记录,可以用 ^ 符号进行操作,但层级深度关系一旦多起来,虽然说也可以实现,但是会有很多个 ^ 符号,不像 ~ 符号那么方便了。

git branch bugWork main^^2^

  实现方式有很多,这里就不一一列举了,达成目标之后就会有成功的提示。

在这里插入图片描述


总结

  感谢观看,如果觉得有帮助,请给文章点个赞吧,让更多的人看到。🌹 🌹 🌹

在这里插入图片描述

  也欢迎你,关注我。👍 👍 👍

  原创不易,还希望各位大佬支持一下,你们的点赞、收藏和留言对我真的很重要!!!💕 💕 💕 最后,本文仍有许多不足之处,欢迎各位认真读完文章的小伙伴们随时私信交流、批评指正!下期再见。🎉

更多专栏订阅:

  • 😀 【LeetCode题解(持续更新中)】
  • 🌼 【鸿蒙系统】
  • 👑 【Python脚本笔记】
  • 🚝 【Java Web项目构建过程】
  • 💛 【微信小程序开发教程】
  • 【JavaScript随手笔记】
  • 🤩 【大数据学习笔记(华为云)】
  • 🦄 【程序错误解决方法(建议收藏)】
  • 🚀 【软件安装教程】



订阅更多,你们将会看到更多的优质内容!!

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

相关文章:

  • git环境切换
  • hyperf websocket
  • 用Echarts词云数据可视化热词表白​​
  • VUE 实现路由的基本原理
  • Android 11 添加系统属性
  • docker 创建容器过程
  • OSI七层网络攻击行为及防范手段
  • 第100+5步 ChatGPT文献复现:ARIMAX预测肺结核 vol. 5
  • 论文| Convolutional Neural Network-based Place Recognition - 2014
  • 基于微信小程序的自习室预约系统的设计与实现
  • 【机器学习】《机器学习算法竞赛实战》第7章用户画像
  • vue3新手笔记
  • 互联网大厂ssp面经之路:计算机网络part1
  • C语言程序设计每日一练(1)
  • Spring 统一功能处理
  • 【软设】知识点速记2
  • 激光雷达和相机的联合标定工具箱[cam_lidar_calibration]介绍
  • ML.NET(二) 使用机器学习预测表情分析
  • YOLOv9最新改进系列:YOLOv9改进之添加注意力-ContextAggregation,有效涨点!!!
  • 【数据结构】初识数据结构与复杂度总结
  • 子域名是什么?有什么作用?
  • 学习 Rust 的第一天:基础知识
  • 电商技术揭秘七:搜索引擎中的SEO关键词策略与内容优化技术
  • 系统开发实训小组作业week7 —— 优化系统开发计划
  • golang的引用和非引用总结
  • 2024认证杯数学建模B题思路模型代码
  • 一种快速移植 OpenHarmony Linux 内核的方法
  • java的jar包jakarta.jakartaee-web-api和jakarta.servlet-api有什么区别
  • QT_day2
  • Advanced RAG 02:揭开 PDF 文档解析的神秘面纱