【随笔】Git 高级篇 -- 提交的技巧(下) cherry-pick commit --amend(十九)

请添加图片描述

  • 💌 所属专栏:【Git】

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

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

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

文章目录

  • 前言
  • 一、提交的技巧
      • 1、介绍
      • 2、示范
      • 3、实战
  • 总结


前言

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


一、提交的技巧

  这里给大家推荐一个好用的 Git在线练习地址。在这练习网站里面也有自己的教程,就让我们一步一步跟着教程学习吧,记录下自己的所感所悟。前面已经简单的讲解了整理提交记录的用法,在实际开发过程中有时候想把修改其中不是最新的 commit,这让我们很困扰,接下来就让我们看看下面是怎么解决的吧。话不多说,让我们原文再续,书接上回吧。

请添加图片描述

1、介绍

  如果你还没有完成“提交的技巧 #1”(前一关)的话,请先通过以后再来!😀
  正如你在上一关所见到的,我们可以使用 rebase -i 对提交记录进行重新排序。只要把我们想要的提交记录挪到最前端,我们就可以很轻松的用 --amend 修改它,然后把它们重新排成我们想要的顺序。
  但这样做就唯一的问题就是要进行两次排序,而这有可能造成由 rebase 而导致的冲突。前面也讲解过怎么用 git cherry-pick 来解决的,但我发现作者的解法跟我有点不一样,所以还是来看看 git cherry-pick 是怎么做的吧。
  下面来看一个例子:

在这里插入图片描述

git cherry-pick C2

  执行完后就会把 C2 分支合并到 main 分支里,运行结果如下图所示:

在这里插入图片描述

  这一关的目标和上一关一样,通过 --amend 改变提交记录 C2,但你不能用 rebase -i。自己想想要怎么解决吧! 😄
  对了,提交记录上面的’的数量并不重要,只是引用的不同而已。也就是说如果你的最终结果在某个提交记录上多了个’,也会算你通过的。

2、示范

  要在心里牢记 cherry-pick 可以将提交树上任何地方的提交记录取过来追加到 HEAD 上(只要不是 HEAD 上游的提交就没问题)。

  我们可以通过以下步骤来进行解决:

  • Step 1、首先用 git checkout main 选择主分支 main 对后续分支进行修剪;
  • Step 2、使用 git cherry-pick C2 选择需要修改的分支;
  • Step 3、使用 git commit --amend 修改提交记录;
  • Step 4、最后将剩余的提交分支合并入 main 分支里;

  也就是说,我在对比结果的时候只会对比提交树的结构,对于 ’ 的数量上的不同,并不纳入对比范围内。只要你的 main 分支结构与目标结构相同,就算通过啦。

3、实战

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

  • help 指令

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

在这里插入图片描述

  • levels 指令

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

在这里插入图片描述

  • 目标

在这里插入图片描述

  • 开始结构

在这里插入图片描述

  • Step 1、指向main分支

  这里 选择主分支 main 对后续分支进行修剪。

git checkout main

  运行结果如下图所示:

在这里插入图片描述

  • Step 2、选择需修改的分支

  通过 cherry-pick 选择需要修改分支,生成出新的分支。

git cherry-pick C2

  运行结果如下图所示:

请添加图片描述

  • Step 3、修改提交

  使用 commitamend 参数来对提交记录进行修改。

git commit --amend

  运行结果如下图所示:

请添加图片描述

  • Step 4、合并 main

  最后将改动重新合并到 main 分支中。

git cherry-pick C3

  运行结果如下图所示:

请添加图片描述

  达成目标之后就会有成功的提示。

在这里插入图片描述


总结

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

在这里插入图片描述

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

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

更多专栏订阅:

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



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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/600430.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【架构七】Hadoop

什么是Hadoop? Hadoop是一个存储系统计算框架的软件大数据处理框架。 Hadoop的核心,说白了就是HDFS和MapReduce,HDFS为海量数据提供了存储,而MapReduce为海量数据提供了计算框架。HBase是一个分布式的、面向列的开源数据库。属于Nosql。 …

day11 java不同对象的关联与内存分析 JavaBean用途及讲解 import导入包

不同对象的关联与内存分析 内存图: 对象的属性是另一个对象时,在堆内存内该属性对应的值是另一个对象的首地址(指向另一个堆内存内另一个对象),两对象建立了联系,可以根据箭头间接调用。 JavaBean…

linux基础篇:Linux中磁盘的管理(分区、格式化、挂载)

Linux中磁盘的管理(分区、格式化、挂载) 一、认识磁盘 1.1 什么是磁盘 磁盘是一种计算机的外部存储器设备,由一个或多个覆盖有磁性材料的铝制或玻璃制的碟片组成,用来存储用户的信息,这种信息可以反复地被读取和改写…

蚁剑修改特征性信息

前言 我们首先得知道蚁剑的流量特征: 编码器和解码器的特征:蚁剑自带的编码器和解码器具有明显的特点,可以通过更改配置文件来达到流量加密的目的1。例如,蚁剑支持多种编码方式,如base64、chr、rot13等,这…

41.基于SpringBoot + Vue实现的前后端分离-校园网上店铺管理系统(项目 + 论文PPT)

项目介绍 二十一世纪互联网的出现,改变了几千年以来人们的生活,不仅仅是生活物资的丰富,还有精神层次的丰富。本课题研究和开发校园网上店铺,让安装在计算机上的该系统变成管理人员的小帮手,提高校园店铺商品销售信息处…

一步到位,MacBook 轻松卸载 App 的简易指南

尽管 MacBook 以其精致外观、卓越效能以及高效的 macOS 操作系统深受广大用户的青睐,但对于初次接触或习惯 Windows 系统的用户而言,如何在 MacBook 上简单而彻底地删除应用程序似乎成了一项挑战。当面临磁盘空间不足或需要彻底摆脱冗余应用时&#xff0…

hexo接入github Discussions评论系统

评论存储仓 可以是你的博客项目的(github)仓库,也可以单独新建一个评论存储仓库。 我的博客项目在gitee上,就以新建存储仓为例: 使用Discussions评论系统必须开通Discussions模块! 安装giscus插件 https://github.com/apps/…

蓝桥杯刷题-09-三国游戏-贪心⭐⭐⭐

蓝桥杯2023年第十四届省赛真题-三国游戏 小蓝正在玩一款游戏。游戏中魏蜀吴三个国家各自拥有一定数量的士兵X, Y, Z (一开始可以认为都为 0 )。游戏有 n 个可能会发生的事件,每个事件之间相互独立且最多只会发生一次,当第 i 个事件发生时会分别让 X, Y,…

oracle 19c xtts迁移

一、环境检查 1.检查数据库时区 select dbtimezone from dual; 检查一致 2.检查数据库时间 select to_char(sysdate, yyyy-mm-dd hh24:mi:ss) from dual; 检查一致 3.检查两边字符集 set linesize 120 select * from nls_database_parameters where parameter like %CHAR…

MySQL进阶-----SQL优化(插入和主键优化)

目录 前言 一、插入数优化(insert) 1.insert插入的优化方案 2 大批量插入数据 二、主键优化 1.数据组织方式 2. 页分裂 3. 页合并 4. 索引设计原则 前言 本期我们就正式进入到下一个章节的学习了,也就是SQL优化,前面我们…

运动健身选什么耳机好?推荐五款好用的运动蓝牙耳机

运动蓝牙耳机相比传统的蓝牙耳机佩戴起来更为舒适,这使它们成为旅途和运动健身的理想选择。我们购买了多款运动蓝牙耳机并进行了测试,现在分享几个选购运动耳机的建议和几款好用的运动耳机给您。 一、选择有保障的大品牌耳机 我们在挑选蓝牙耳机的时候…

算法打卡day36|动态规划篇04| 01背包理论基础、416. 分割等和子集

目录 01背包理论基础 01背包问题描述 01背包解法 二维数组 一维数组 算法题 Leetcode 416. 分割等和子集 个人思路 解法 动态规划 01背包理论基础 不同的背包种类,虽然有那么多中南背包,但其中01背包和完全背包是重中之重; 01背包问…