💌 所属专栏:【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随手笔记】
- 🤩 【大数据学习笔记(华为云)】
- 🦄 【程序错误解决方法(建议收藏)】
- 🚀 【软件安装教程】
订阅更多,你们将会看到更多的优质内容!!