git rebase 合并当前分支的多个commit记录

git rebase 合并当前分支的多个commit记录

      • git rebase 相关的选项和用法
      • step1:找到想要合并的 commit
      • step2. 使用 rebase -i
      • step3. 编辑提交历史:
      • step4.编辑合并后的提交信息
      • step5.完成 rebase 过程:
      • step6.**推送更新:**
      • step6.**再次查看提交记录:**
      • 一些常用git 命令

git rebase 相关的选项和用法

4399e2fd15c71bf0c60003a8547ae2c.jpg

step1:找到想要合并的 commit

你可能出现过对同一处代码进行多次处理的场景。这会导致如下提交记录
image.png
在gitee中也是两个同样的提交记录
image.png
其实,2次提交完全可以合并成一次 commit,这个时候 rebase 就很有用了。

step2. 使用 rebase -i

#git rebase -i HEAD~n
#这里的 n 是你想要合并的提交数量加一。例如,如果你想要合并最近的三个提交,就使用 HEAD~3。
git rebase -i HEAD~2
#退出交互式 rebase 状态
git rebase --abort

step3. 编辑提交历史:

执行上述命令后,会打开一个交互式编辑器,列出了你选择的提交。每个提交前面都有一个操作标记(通常是 pick)。将你想要合并的提交前的操作标记改为 squashs(表示“合并”),这将把这个提交与前一个提交合并
打开交互编辑器如下:

pick e247817c1 支持使用json/yaml或excel方式来创建角色
pick 9d87c9c09 支持使用json/yaml或excel方式来创建角色# Rebase 6b019ef89..9d87c9c09 onto 6b019ef89 (2 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup <commit> = like "squash", but discard this commit's log message
# x, exec <command> = run command (the rest of the line) using shell
# b, break = stop here (continue rebase later with 'git rebase --continue')
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
# .       create a merge commit using the original merge commit's
# .       message (or the oneline, if no original merge commit was
# .       specified). Use -c <commit> to reword the commit message.
#

step4.编辑合并后的提交信息

pick e247817c1 支持使用json/yaml或excel方式来创建角色
s 9d87c9c09 支持使用json/yaml或excel方式来创建角色
#修改内容 :wq保存

完成上述操作后,保存并关闭编辑器。Git 将会合并这些提交,并打开一个新的编辑器窗口,让你编辑合并后的提交信息。在这里你可以编辑合并后的提交信息,或者保持原样。
#支持使用json/yaml或excel方式来创建角色 这一行打开时是没有注释的,注释掉。

# This is a combination of 2 commits.
# This is the 1st commit message:支持使用json/yaml或excel方式来创建角色# This is the commit message #2:#支持使用json/yaml或excel方式来创建角色

step5.完成 rebase 过程:

保存并关闭编辑器。Git 将会完成 rebase 过程,并应用你的修改。

step6.推送更新:

#如果你在一个公共分支上进行了 rebase 操作,需要使用 --force(或 -f)选项推送更新到远程仓库,
#因为 rebase 改写了提交历史,可能会导致远程仓库的提交历史与本地不一致。#强行推送
git push -f origin WC-1009

step6.再次查看提交记录:

image.png

一些常用git 命令

#拉取
git pull origin  WC-1071
git init:
#说明: 在当前目录创建一个新的 Git 仓库。
#用法: git init [directory]
#示例: git init(在当前目录初始化一个仓库)或 git init my_project(在名为 my_project 的目录中初始化一个仓库)。
git clone [url]:
#说明: 从远程仓库克隆一个项目到本地。
#用法: git clone [url] [directory]
#示例: git clone https://github.com/example/project.git(克隆名为 project 的仓库到当前目录)或 git clone https://github.com/example/project.git my_project(克隆到名为 my_project 的目录)。
git add [file]:
#说明: 将文件添加到暂存区,准备提交。
#用法: git add [file]
#示例: git add index.html(将 index.html 添加到暂存区)或 git add .(将当前目录下所有修改的文件添加到暂存区)。
git commit -m "message":
#说明: 提交暂存区的文件到本地仓库,并附上一条说明信息。
#用法: git commit -m "message"
#示例: git commit -m "Added login functionality"(提交并附上说明信息)。
git status:
#说明: 显示工作区、暂存区和本地仓库的状态。
#用法: git status
#示例: git status(显示当前状态)。
git diff:
#说明: 显示工作区和暂存区的文件差异。
#用法: git diff
#示例: git diff(显示工作区和暂存区的差异)。
git log:
#说明: 显示本地仓库的提交历史。
#用法: git log
#示例: git log(显示提交历史)。
git pull:
#说明: 从远程仓库拉取最新的提交到本地,并尝试合并到当前分支。
#用法: git pull [remote] [branch]
#示例: git pull origin master(从远程的 origin 仓库的 master 分支拉取最新提交并合并到当前分支)。
git push:
#说明: 将本地仓库的提交推送到远程仓库。
#用法: git push [remote] [branch]
#示例: git push origin master(将当前分支的提交推送到远程的 origin 仓库的 master 分支)。
git branch:
#说明: 显示本地仓库的分支列表。
#用法: git branch
#示例: git branch(显示分支列表
git checkout:
#说明:切换分支
#用法: git checkout <branch>
#示例: git checkout master#创建并切换到新的分支:
git checkout -b <new_branch>

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

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

相关文章

使用ollama离线部署小模型

在有网的机器下载ollama和模型 启动服务 docker run --rm -it -v ./ollama:/root/.ollama -p 8000:11434 --name ollama ollama/ollama下载模型 docker exec -it ollama ollama pull qwen:0.5b将镜像和ollama目录复制到离线的机器中 docker启动ollama服务 验证 curl ht…

FFmpeg常用API与示例(三)—— 音视频解码与编码

编解码层 1.解码 (1) 注册所有容器格式和 CODEC:av_register_all() (2) 打开文件:av_open_input_file() (3) 从文件中提取流信息:av_find_stream_info() (4) 穷举所有的流&#xff0c;查找其中种类为 CODEC_TYPE_VIDEO (5) 查找对应的解码器:avcodec_find_decoder() (6) …

C++ 实现以xml的格式写入文件

C XML类 该类主要将xml中的标签分为两类&#xff0c;无内容标签统一称为父标签&#xff0c;有内容的就以键值对的方式直接输出。 后面可能会优化通过函数参数的方式管控层级关系&#xff0c;现在是通过类里自动记录层级深度来表示的。 #include <fstream> #include <…

【QT教程】QT6硬件图形界面编程 QT硬件编程

QT6硬件图形界面编程 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C扩展开发视频课程 免费QT视频课程 您可以看免费1000个QT技术视频 免费QT视频课程 QT统计图和QT数据可视化视频免费看 免费QT视频课程 QT性能优化视频免费看…

数据结构-二叉树结尾+排序

一、二叉树结尾 1、如何判断一棵树是完全二叉树。 我们可以使用层序遍历的思路&#xff0c;利用一个队列&#xff0c;去完成层序遍历&#xff0c;但是这里会有些许的不同&#xff0c;我们需要让空也进队列。如果队列里到最后只剩下空那么这棵树就是完全二叉树。具体的实现如下…

js 数据格式转换,对象转数组,数组转对象

1.对象转数组 // 对象obj转换成数组格式 let obj { orgCode:分局编码, alertId:告警ID, name:告警名称 } let arr [] for(let key in obj) { console.log(11,key,obj[key]); // 定义一个对象&#xff0c;赋值 let o { id: key, // key是obj对象的键值 label: obj[key] …

学习Vue 3.0中的onMounted和onUnmounted钩子函数

学习Vue 3.0中的onMounted和onUnmounted钩子函数 一、什么是onMounted和onUnmounted&#xff1f;二、如何使用onMounted和onUnmounted&#xff1f;1、使用onMounted2、使用onUnmounted 三、总结 一、什么是onMounted和onUnmounted&#xff1f; Vue 3.0带来了许多令人兴奋的新特…

Modal h函数写法

Modal h函数写法 if (res.data.flag) {const ocapWarn res.data.ocaplList;Modal.warning({title: "提示",content: h("div", {}, [ocapWarn.map((item, index) > {return h("div", {}, [h("p",${index 1}、${item.defectItem}(…

IntersectionObserver对象

IntersectionObserver对象 IntersectionObserver对象&#xff0c;从属于Intersection Observer API&#xff0c;提供了一种异步观察目标元素与其祖先元素或顶级文档视窗viewport交叉状态的方法&#xff0c;祖先元素与视窗viewport被称为根root&#xff0c;也就是说Intersectio…

c#---多态

在 C#语言中体现多态有三种方式&#xff1a;虚方法&#xff0c;抽象类&#xff0c; 接口 一、虚方法 什么是虚方法&#xff1f; 在父类中使用 virtual 关键字修饰的方法&#xff0c; 就是虚方法。在子类中可以使用 override 关键字对该虚方法进行重写。 class Animal {public…

android apk没有源码如何修改程序

如果您拥有一个APK文件但没有源代码&#xff0c;您可以尝试以下几种方法来进行修改&#xff1a; 反编译APK&#xff1a;使用工具如apktool对APK文件进行反编译&#xff0c;这将为您提供源代码和资源文件。 动态调试&#xff1a;使用调试工具连接设备或模拟器&#xff0c;并动态…

重装前端整体流程

用户管理 --汇总 -- 明细-CSDN博客 一、node 这个看环境变量 2023最新版Node.js下载安装及环境配置教程&#xff08;非常详细&#xff09;从零基础入门到精通&#xff0c;看完这一篇就够了_nodejs安装及环境配置-CSDN博客 配置到国内镜像的时候&#xff0c;去看&#xff0c;淘…

理解固化的Maven依赖:spring-boot-starter-parent 与 spring-boot-dependencies

目录 理解固化的Maven依赖&#xff1a;spring-boot-starter-parent 与 spring-boot-dependencies1. spring-boot-starter-parent1.1 简介1.2 特点 2. spring-boot-dependencies2.1 简介2.2 特点 3. 异同点对比3.1 相同点3.2 不同点案例一&#xff1a;使用 spring-boot-starter-…

Java方法的重载

方法重载 1. 为什么需要方法重载 public class TestMethod{public static void main (String[] args){int a 10;int b 20;int ret add(a,b);System.out.println("ret "ret);double a2 10.5;double b2 20.5;double ret2 add(a2,b2);System.out.println("…

《QT实用小工具·六十二》基于QT实现贝塞尔曲线画炫酷的波浪动画

1、概述 源码放在文章末尾 该项目实现了通过贝塞尔曲线画波浪动画&#xff0c;可控制 颜色密度速度加速度 安装与运行环境 语言&#xff1a;C 框架&#xff1a;Qt 11.3 平台&#xff1a;Windows 将屏幕水平平均分为10块&#xff0c;在一定范围内随机高度的12个点&#xff08;…

飞天使-k8s知识点29-kubernetes安装1.28.0版本

文章目录 选用版本初始化服务器,自己修改里面的ipreboot haproxy安装 &#xff0c;可以参考我之前写的内核参数调整&#xff0c;安装docker 安装cri-dockerd开始安装集群工具下载镜像以及启用完毕之后 此时的coredns 不通结果展示 选用版本 k8s 1.24版本之前还可以使用docker&…

【初阶数据结构】顺序表OJ题讲解

前言 &#x1f4da;作者简介&#xff1a;爱编程的小马&#xff0c;正在学习C/C&#xff0c;Linux及MySQL。 &#x1f4da;本文收录与初阶数据结构系列&#xff0c;本专栏主要是针对时间、空间复杂度&#xff0c;顺序表和链表、栈和队列、二叉树以及各类排序算法&#xff0c;持…

基于ambari hdp的kafka用户授权读写权限

基于ambari hdp的kafka用户授权读写权限 版本Kafka 2.0.0添加自定义配置修改admin密码重启kafka授权读取授权写入有效通配符部分举例 版本Kafka 2.0.0 添加自定义配置 authorizer.class.name kafka.security.auth.SimpleAclAuthorizer super.users User:admin allow.everyo…

【LLM 论文】Step-Back Prompting:先解决更高层次的问题来提高 LLM 推理能力

论文&#xff1a;Take a Step Back: Evoking Reasoning via Abstraction in Large Language Models ⭐⭐⭐⭐ Google DeepMind, ICLR 2024, arXiv:2310.06117 论文速读 该论文受到的启发是&#xff1a;人类再解决一个包含很多细节的具体问题时&#xff0c;先站在更高的层次上解…

Android 屏幕适配全攻略(上)-掌握屏幕单位,应对千变万化的设备

本文从 Android 开发中常见的长度单位 px、dp、sp 入手&#xff0c;详细介绍了它们的特点及转换关系。 接着深入探讨了屏幕尺寸、分辨率、像素密度等重要的屏幕指标&#xff0c;帮助读者全面理解它们之间的联系。最后&#xff0c;通过实例代码演示了如何在代码中进行单位转换&…