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

请添加图片描述

  • 💌 所属专栏:【Git】

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

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

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

请添加图片描述


前言

  大家好,又见面了,我是夜阑的狗🐶,本文是专栏【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^

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

在这里插入图片描述


总结

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

在这里插入图片描述

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

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

更多专栏订阅:



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

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-10 18:44:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-10 18:44:06       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-10 18:44:06       82 阅读
  4. Python语言-面向对象

    2024-04-10 18:44:06       91 阅读

热门阅读

  1. [leetcode]longest-consecutive-sequence 最长连续序列

    2024-04-10 18:44:06       34 阅读
  2. 免费泛域名SSL证书申请

    2024-04-10 18:44:06       32 阅读
  3. React 中与生命周期相关的 Hooks 及其使用示例

    2024-04-10 18:44:06       31 阅读
  4. React 组件生命周期函数的用法和示例代码

    2024-04-10 18:44:06       34 阅读
  5. jquery 正则自整理

    2024-04-10 18:44:06       32 阅读
  6. 为什么const声明的变量是可以修改的?

    2024-04-10 18:44:06       30 阅读
  7. 如何使用Python中的logging模块进行日志记录?

    2024-04-10 18:44:06       34 阅读
  8. AcWing 792. 高精度减法——算法基础课题解

    2024-04-10 18:44:06       33 阅读
  9. gocron定时任务管理

    2024-04-10 18:44:06       37 阅读
  10. 1.Go的基本语法 - 函数、数组、接口

    2024-04-10 18:44:06       42 阅读
  11. 2024.4.2力扣每日一题——所有可能的真二叉树

    2024-04-10 18:44:06       34 阅读
  12. libcurl上手笔记-HTTP方法 GET、POST、PUT、DELETE

    2024-04-10 18:44:06       42 阅读
  13. 渗透测试步骤

    2024-04-10 18:44:06       37 阅读
  14. 基于R语言的选举数据的模型建立与预测分析

    2024-04-10 18:44:06       35 阅读