【随笔】Git 高级篇 -- 纠缠不清的分支 rebase | cherry-pick(二十四)

这篇具有很好参考价值的文章主要介绍了【随笔】Git 高级篇 -- 纠缠不清的分支 rebase | cherry-pick(二十四)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【随笔】Git 高级篇 -- 纠缠不清的分支 rebase | cherry-pick(二十四),Git,# Git高级篇,git,笔记

  • 💌 所属专栏:【Git】

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

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

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

您的点赞、关注、收藏、评论,是对我最大的激励和支持!!!🤩 🤩 🤩

【随笔】Git 高级篇 -- 纠缠不清的分支 rebase | cherry-pick(二十四),Git,# Git高级篇,git,笔记


前言

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


一、纠缠不清的分支

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

【随笔】Git 高级篇 -- 纠缠不清的分支 rebase | cherry-pick(二十四),Git,# Git高级篇,git,笔记

1、介绍

  到了这里,你基本上成为了别人眼中的大神了!这关我们要来点不同的!现在我们的 main 分支是比 onetwothree 要多几个提交。出于某种原因,我们需要把 main 分支上最近的几次提交做不同的调整后,分别添加到各个的分支上。
  one 需要重新排序并删除 C5,two 仅需要重排排序,而 three 只需要提交一次。慢慢来,你会找到答案的 —— 记得通关之后用 show solution 看看我们的答案哦。

2、示范

  git rebase 指令用于将一个分支的提交逐个应用到另一个分支上,以使得提交历史更加整洁。以下是该指令的基本用法:

  • 单参数
git rebase <branch>

  其中 <branch> 参数是要将当前分支的提交应用到的目标分支。执行该指令后,Git会将当前分支的各个提交逐个应用到目标分支上,创建新的提交。这样,目标分支就会包含当前分支的最新更改,而且提交历史线会更加整洁地呈现出一条直线。

  • 双参数
git rebase <branch1> <branch2>

  其中 <branch1> 参数是要将当前分支的提交应用到的目标分支,<branch2> 参数是需要提交到目标分支的源分支。
  需要注意的是,git rebase 不会保留原始分支上的提交。相反,它会将提交逐个应用到目标分支上,并创建新的提交。如果在 git rebase 的过程中发生冲突,需要手动解决冲突并使用 git add 命令将解决后的更改添加到暂存区。然后,使用 git rebase --continue 指令继续进行 git rebase 的操作。
  即使你搞砸了也没关系,用 reset 命令就可以重新开始了。记得看看作者提供的答案,看你能否使用更少的命令来完成任务!

3、实战

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

  • help 指令

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

【随笔】Git 高级篇 -- 纠缠不清的分支 rebase | cherry-pick(二十四),Git,# Git高级篇,git,笔记

  • levels 指令

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

【随笔】Git 高级篇 -- 纠缠不清的分支 rebase | cherry-pick(二十四),Git,# Git高级篇,git,笔记

  • 目标

【随笔】Git 高级篇 -- 纠缠不清的分支 rebase | cherry-pick(二十四),Git,# Git高级篇,git,笔记

  • 开始结构

【随笔】Git 高级篇 -- 纠缠不清的分支 rebase | cherry-pick(二十四),Git,# Git高级篇,git,笔记

(1)第一种方法

  最能直接想到就是用 rebase -i 选择分支合入来,就让我们来看看是怎么操作的吧。

  • Step 1、更新 one 分支

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

git rebase main one

  运行结果如下图所示:

【随笔】Git 高级篇 -- 纠缠不清的分支 rebase | cherry-pick(二十四),Git,# Git高级篇,git,笔记

  • Step 2、调整 one 分支

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

git rebase -i two

  运行结果如下图所示:

【随笔】Git 高级篇 -- 纠缠不清的分支 rebase | cherry-pick(二十四),Git,# Git高级篇,git,笔记

  • Step 3、更新 two

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

git rebase main two

  运行结果如下图所示:

【随笔】Git 高级篇 -- 纠缠不清的分支 rebase | cherry-pick(二十四),Git,# Git高级篇,git,笔记

  • Step 4、调整 two

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

git rebase -i three

  运行结果如下图所示:

【随笔】Git 高级篇 -- 纠缠不清的分支 rebase | cherry-pick(二十四),Git,# Git高级篇,git,笔记

  • Step 5、更新 three

  将 three 分支上从 C3 提交开始的提交应用到当前分支上。

git rebase three C2

  这个操作会将当前分支的提交切换为C3提交,然后逐个应用 three 分支上的提交,使其在当前分支上成为最新的提交。运行结果如下图所示:

【随笔】Git 高级篇 -- 纠缠不清的分支 rebase | cherry-pick(二十四),Git,# Git高级篇,git,笔记

(1)第二种方法

  除了用 rebase -i 选择分支合入之外,也可以用 cherry-pick 来进行操作,就让我们来看看是怎么操作的吧。

  • Step 1、选择 one 分支
git checkout one

  运行结果如下图所示:

【随笔】Git 高级篇 -- 纠缠不清的分支 rebase | cherry-pick(二十四),Git,# Git高级篇,git,笔记

  • Step 2、更新 one 分支

  选择需要合入分支的提交记录,并按输入顺序进行合入。

git cherry-pick C4 C3 C2

  运行结果如下图所示:

【随笔】Git 高级篇 -- 纠缠不清的分支 rebase | cherry-pick(二十四),Git,# Git高级篇,git,笔记

  • Step 3、选择 two 分支
git checkout two 

  运行结果如下图所示:

【随笔】Git 高级篇 -- 纠缠不清的分支 rebase | cherry-pick(二十四),Git,# Git高级篇,git,笔记

  • Step 4、更新 two 分支

  选择需要合入分支的提交记录,并按输入顺序进行合入。

git cherry-pick C5 C4 C3 C2

  运行结果如下图所示:

【随笔】Git 高级篇 -- 纠缠不清的分支 rebase | cherry-pick(二十四),Git,# Git高级篇,git,笔记

  • Step 5、更新 three 分支

  最后通过 branch 指令强行把 three 分支移动到 C2 提交记录上,同时丢弃原有的提交历史,这里需要注意一下,这可能会导致一些提交不可访问,所以在实际项目过程中该指令还是谨慎使用比较好;

git branch -f three C2

  运行结果如下图所示:

【随笔】Git 高级篇 -- 纠缠不清的分支 rebase | cherry-pick(二十四),Git,# Git高级篇,git,笔记

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

【随笔】Git 高级篇 -- 纠缠不清的分支 rebase | cherry-pick(二十四),Git,# Git高级篇,git,笔记


总结

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

【随笔】Git 高级篇 -- 纠缠不清的分支 rebase | cherry-pick(二十四),Git,# Git高级篇,git,笔记

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

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

更多专栏订阅:

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



订阅更多,你们将会看到更多的优质内容!!文章来源地址https://www.toymoban.com/news/detail-849056.html

到了这里,关于【随笔】Git 高级篇 -- 纠缠不清的分支 rebase | cherry-pick(二十四)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【随笔】Git 高级篇 -- 整理提交记录(上)cherry-pick(十五)

    💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘   大家好,又见面了,我是夜阑的狗🐶,

    2024年04月10日
    浏览(35)
  • 【随笔】Git 高级篇 -- 提交的技巧(下) cherry-pick& commit --amend(十九)

    💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘 您的点赞、关注、收藏、评论,是对我最大

    2024年04月14日
    浏览(39)
  • 【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八)

    💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘 您的点赞、关注、收藏、评论,是对我最大

    2024年04月22日
    浏览(36)
  • Git进阶之代码回滚、合并代码、从A分支选择N次提交,合并到B分支【revert、merge、rebase、cherry-pick】

    B站视频地址: https://www.bilibili.com/video/BV1KX4y1a7N9 Git学习文档:https://d9bp4nr5ye.feishu.cn/wiki/PeDPw3mm3iFA36k9td9cVeignsZ 在很长一段时间里,我对Git的操作只限于:提交代码,拉取代码,合并代码。 虽然上面这些操作在日常工作中也足够了,但不会点高级知识不利于装X,今天我们来学

    2024年02月08日
    浏览(75)
  • 【随笔】Git -- 解决提交时本地与目标分支不一致导致提交失败 stash & pull --rebase(三)

    💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘 您的点赞、关注、收藏、评论,是对我最大

    2024年04月27日
    浏览(45)
  • 【随笔】Git 高级篇 -- 快速定位分支 ^|~(二十三)

    💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘 您的点赞、关注、收藏、评论,是对我最大

    2024年04月12日
    浏览(32)
  • git merge rebase cherry-pick分别什么时候用?一文解惑

    =========== 1.使用 将分支切换到 master 上去:git checkout master 将分支 feature 合并到当前分支(即 master 分支)上:git merge feature 2.特点 只处理一次冲突 引入了一次合并的历史记录,合并后的所有 commit 会按照提交时间从旧到新排列 所有的过程信息更多,可能会提高之后查找问题的

    2024年03月26日
    浏览(53)
  • VSCode种git rebase分支冲突解决无法继续rebase

    情景:         常规来说我们git开分支开发完新功能之后,提交之前rebase dev分支,然后合并到dev上算是开发完成。 问题还原:         在开发完之后执行如下指令:          1.执行变基操作:git rebase dev。 //这一步出现冲突vscode上处理冲突,点击添加(相当于add,下图

    2024年02月17日
    浏览(34)
  • 利用idea cherry-pick 汇合代码到Git其他分支

    参考博客:https://www.javaclub.cn/tool/56730.html https://blog.csdn.net/weixin_40482816/article/details/123282706 在准备发补丁版本时,需要将本地master仓库修改的代码同步到镜像代码分支中,传统方法是先拉取镜像版本代码库,更新后手动修改再提交该分支,比较繁琐耗时。利用git中cherry-pick命令

    2024年02月02日
    浏览(35)
  • git把一个分支上的某次修改同步到另一个分支上,并解决git cherry-pick 冲突

    我们在工作中经常会碰到好几个同事共同在一个分支上开发,一个项目同时会有好几个分支,我们在feature上开发的功能时,有可能某个需求需要提前发布,这个时候我们已经在feature A上开发完成,但是需要在master上发布。这个时候该怎么办呢? 我们是不是可以直接将feature

    2024年02月01日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包