【随笔】Git 高级篇 -- 整理提交记录(下)rebase(十六)

news/2024/7/16 8:53:07 标签: windows, git, ide, 笔记

请添加图片描述

  • 💌 所属专栏:【Git】

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

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

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

文章目录

  • 前言
  • 一、Git 整理提交记录
      • 1、介绍
      • 2、示范
        • (1)git rebase -i
      • 3、实战
  • 总结


前言

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


一、Git 整理提交记录

  这里给大家推荐一个好用的 Git在线练习地址。在这练习网站里面也有自己的教程,就让我们一步一步跟着教程学习吧,记录下自己的所感所悟。前面已经简单的讲解了Git 撤销变更的用法,在实际开发过程中也要学会整理提交记录,接下来就跟着学习Git 的整理提交记录(下)吧。话不多说,让我们原文再续,书接上回吧。

在这里插入图片描述

1、介绍

  当你知道你所需要的提交记录(并且还知道这些提交记录的哈希值)时, 用 cherry-pick 再好不过了 —— 没有比这更简单的方式了。
  但是如果你不清楚你想要的提交记录的哈希值呢? 幸好 Git 帮你想到了这一点, 我们可以利用交互式的 rebase —— 如果你想从一系列的提交记录中找到想要的记录, 这就是最好的方法了

2、示范

git_rebase_i_52">(1)git rebase -i

  交互式 rebase 指的是使用带参数 --interactiverebase 命令, 简写为 -i

  如果你在命令后增加了这个选项, Git 会打开一个 UI 界面并列出将要被复制到目标分支的备选提交记录,它还会显示每个提交记录的哈希值和提交说明,提交说明有助于你理解这个提交进行了哪些更改。
  在实际使用时,所谓的 UI 窗口一般会在文本编辑器 —— 如 Vim —— 中打开一个文件。 考虑到课程的初衷,练习网址特意弄了一个对话框来模拟这些操作(不愧是大佬)。

  当 rebase UI界面打开时, 你能做3件事:

  • 调整提交记录的顺序(通过鼠标拖放来完成);
  • 删除你不想要的提交(通过切换 pick 的状态来完成,关闭就意味着你不想要这个提交记录);
  • 合并提交。 遗憾的是由于某种逻辑的原因,该练习网址不支持此功能,因此不会详细介绍这个操作。简而言之,它允许你把多个提交记录合并成一个;

  接下来咱们看个实例

git rebase -i HEAD~4

请添加图片描述

  这里通过UI调整了提交记录顺序,结果如下图所示:

请添加图片描述

  要通过本关, 做一次交互式的 rebase,整理成目标窗口中的提交顺序。 记住,你随时都可以用 undoreset 修正错误,这是不会记入步数的(通关提示)。

3、实战

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

  • help 指令

  执行这个命令后就会有个帮助信息的弹窗。
在这里插入图片描述

  • levels 指令

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

在这里插入图片描述

  • 目标

在这里插入图片描述

  • 开始结构

在这里插入图片描述

  • Step 1、交互式的 rebase

  从目标可以知道,由于 main 分支只要 C3 C4 C7 提交,其他提交不想合并进去,就可以使用 cherry-pick 将需要提交合并到 main 分支中;

git rebase -i overHere
git rebase -i HEAD~4

  这里我们可以先进行误操作,比如把 C2 C3 C4 进行删除,从而得到新的分支;运行结果如下图所示:

在这里插入图片描述
  这里可以看到选中的分支已经被删除了。

请添加图片描述
  然后我们就可以用 undo 或者 reset 命令来进行恢复。这里以 reset 为例,undo 的话可以让各位看客尝试一下。

git reset C5

  运行结果如下图所示:

在这里插入图片描述
  Git中的 undoreset 都是用来撤销之前的更改的,但它们实现的方式不同。undo 是一个命令,它可以用来撤销最近的提交或操作。它主要移动 HEAD 指针和分支指针,从而回退到之前的提交状态。使用 undo 会丢失之前的提交历史,所以在使用该命令之前需要谨慎考虑。
  git reset也是一个命令,它可以用来撤销之前的提交。与 undo 不同的是,git reset 通过把分支记录回退几个提交记录来实现撤销改动,原来指向的提交记录就跟从来没有提交过一样。所做的变更还在,但是处于未加入暂存区状态。
  最后,按着目标进行操作即可通过啦

请添加图片描述

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

在这里插入图片描述


总结

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

在这里插入图片描述

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

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

更多专栏订阅:

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



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


http://www.niftyadmin.cn/n/5476283.html

相关文章

DFS-0与异或问题,有奖问答,飞机降落

代码和解析 #include<bits/stdc.h> using namespace std; int a[5][5]{{1,0,1,0,1}}; //记录图中圆圈内的值&#xff0c;并初始化第1行 int gate[11]; //记录10个逻辑门的一种排列 int ans; //答案 int logic(int x, int y, int op){…

提升网络传输性能的误区

客机坠毁始终是种灾难&#xff0c;理论上至少存在 100 种不让客机坠毁的方案&#xff0c;其中之一是携带一个巨大的降落伞(合计展开面积 6000 平米)&#xff0c;该方案涉及包括材料学&#xff0c;力学等&#xff0c;用最轻的材料做展开面积最大的降落伞&#xff0c;当客机要坠毁…

前端| 富文本显示不全的解决方法

背景 前置条件&#xff1a;编辑器wangEditor vue项目 在pc端进行了富文本操作&#xff0c; 将word内容复制到编辑器中&#xff0c; 进行发布&#xff0c; pc端正常&#xff0c; 在手机端展示的时候 显示不全 分析 根据h5端编辑器内容的数据展示&#xff0c; 看到有一些样式造…

【NLP练习】中文文本分类-Pytorch实现

中文文本分类-Pytorch实现 &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、准备工作 1. 任务说明 本次使用Pytorch实现中文文本分类。主要代码与文本分类代码基本一致&#xff0c;不同的是本次任务使用…

day13 java final 类和对象的初始化执行顺序

final [面试题]请简述final关键字final修饰类&#xff08;最终的类&#xff09;-太监类&#xff1a;该类不能被继承。(比如&#xff1a;String StringBuilder,....) final修饰方法&#xff08;最终的方法&#xff09;&#xff1a;不能被重写 final修饰的变量 &#xff1a;值不…

Go协程池gopool源码解析

1、gopool简介 Repository&#xff1a;https://github.com/bytedance/gopkg/tree/develop/util/gopool gopool is a high-performance goroutine pool which aims to reuse goroutines and limit the number of goroutines. It is an alternative to the go keyword. gopool的…

spring获取bean

参考&#xff1a;百度安全验证 这里我列举2种方法&#xff0c;其它方法可以自行学习。 1、BeanUtils代码如下&#xff1a; package com.hmblogs.backend.util;import org.springframework.context.ApplicationContext; import org.springframework.web.context.request.Requ…

[LeetCode][LCR131]砍竹子 I——推测规律

题目 LCR 131. 砍竹子 I 现需要将一根长为正整数 bamboo_len 的竹子砍为若干段&#xff0c;每段长度均为正整数。请返回每段竹子长度的最大乘积是多少。 示例 1&#xff1a; 输入: bamboo_len 12 输出: 81 提示&#xff1a; 2 < bamboo_len < 58 注意&#xff1a;本题…