Git---变基(git_rebase)操作之合并多次提交,美化log记录

2024-03-29 16:52

本文主要是介绍Git---变基(git_rebase)操作之合并多次提交,美化log记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

该总结主要用于多个提交,最后做汇总

目的是优化简化log日志

修改历史commit信息记录

 git rebase 常用操作命令

git rebase --continue表示继续下一个冲突或者下一个变基操作
git rebase --skip表示跳过当前冲突或当前变基操作
git rebase --abort表示退出rebase模式

一、改变最近一次提交说明

// 可以直接用 --amend 的属性实现修改最近的一次提交信息
// 1. git add 操作后的文件
// 上次提交时描述错别字想修改:提叫信息 ==> 提交信息
// 2. git commit --amend -m '修正的信息' 
// 或者这样写:
// 2. git commit --amend 会弹出紧邻的上次提交信息,直接修改后(:wq),即可

二、改变多次提交说明

改变一个或者多个历史提交信息

// 这是一条衍生命令,涉及的所有提交都会被重写(即便没有改动对应的记录说明)
git rebase -i HEAD~3
# 这里说明下下面的命令可以依次改动多个命令执行,顺序是依次执行,自上而下!!!
# 不过这里不推荐,尽量一个功能改动执行一次变基操作!!!pick aac47c2 提交getters中token函数
pick 327e0b3 添加fieldId获取方法
pick 933cb5d getters添加userInfo获取方法# Rebase a2cc4e4..933cb5d onto a2cc4e4 (3 commands)

 变基界面里面的命令说明

# Commands:
# p, pick <commit> = use commit
# p: 默认的选项,表示使用该提交,保留该commit,不做任何处理# r, reword <commit> = use commit, but edit the commit message
# r: (会改变hash值)重写提交信息,比如第二个信息前面pick改为r,
#    退出后会进入到另一个编辑界面(包含改为r的信息)
#    这里改的话,改对应的commit信息,退出后直接结束变基操作了,多个r操作(会连续跳进信息修改的)。# e, edit <commit> = use commit, but stop for amending
# e: (会改变hash值)将需要改动的信息pick改为edit(e),之后退出保存。会停留在对应的位置之后执行: git commit --amend 进入编辑页面修改commit信息之后执行: git rebase --continue 去继续操作修改完成rebase流程// 对于多个e的情况,后期尝试是否连续stop!!!(多个e操作,会连续stop的)# s, squash <commit> = use commit, but meld into previous commit
# s: 使用提交,但是合并到先前的提交中。即融合到该列表中的其中未改为s的提交中(暂时理解)
#    最重要的一点,在多个pick、记录里面,去最前面至少要有一个未改动的pick作为根合并的对象# d, drop <commit> = remove commit
# d:移除掉对应的提交,同时对应的改动也会被撤掉!!!慎用!!!

通俗介绍如下图

p,pick:保留该commit(缩写:p)
r,reword:保留该commit,但我需要修改该commit的注释(缩写:r)
e,edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)
s,squash:将该commit和前⼀个commit合并(缩写:s)
f,fixup:将该commit和前⼀个commit合并,但我不要保留该提交的注释信息(缩写:f)
x,exec:执⾏shell命令(缩写:x)
d,drop:我要丢弃该commit(缩写:d)经常⽤到的是pick、edit、squash、fixup

 rebase的常用操作:

git rebase --continue表示继续下一个冲突或者下一个变基操作
git rebase --skip表示跳过当前冲突或当前变基操作
git rebase --abort表示退出rebase模式 

友情提示下:

这些变基操作,主要针对当前分支的操作,即主要修改当前分支的提交信息或者优化当前分支的提交信息


不建议将公共分支进行编辑操作,这样会影响到其他的开发者,可以自己分支间操作使用,个人一般用来修改提交历史记录。

这篇关于Git---变基(git_rebase)操作之合并多次提交,美化log记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/859126

相关文章

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

Python操作PDF文档的主流库使用指南

《Python操作PDF文档的主流库使用指南》PDF因其跨平台、格式固定的特性成为文档交换的标准,然而,由于其复杂的内部结构,程序化操作PDF一直是个挑战,本文主要为大家整理了Python操作PD... 目录一、 基础操作1.PyPDF2 (及其继任者 pypdf)2.PyMuPDF / fitz3.Fre

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

MySQL 强制使用特定索引的操作

《MySQL强制使用特定索引的操作》MySQL可通过FORCEINDEX、USEINDEX等语法强制查询使用特定索引,但优化器可能不采纳,需结合EXPLAIN分析执行计划,避免性能下降,注意版本差异... 目录1. 使用FORCE INDEX语法2. 使用USE INDEX语法3. 使用IGNORE IND

Python使用openpyxl读取Excel的操作详解

《Python使用openpyxl读取Excel的操作详解》本文介绍了使用Python的openpyxl库进行Excel文件的创建、读写、数据操作、工作簿与工作表管理,包括创建工作簿、加载工作簿、操作... 目录1 概述1.1 图示1.2 安装第三方库2 工作簿 workbook2.1 创建:Workboo

Zabbix在MySQL性能监控方面的运用及最佳实践记录

《Zabbix在MySQL性能监控方面的运用及最佳实践记录》Zabbix通过自定义脚本和内置模板监控MySQL核心指标(连接、查询、资源、复制),支持自动发现多实例及告警通知,结合可视化仪表盘,可有效... 目录一、核心监控指标及配置1. 关键监控指标示例2. 配置方法二、自动发现与多实例管理1. 实践步骤

Ubuntu 24.04启用root图形登录的操作流程

《Ubuntu24.04启用root图形登录的操作流程》Ubuntu默认禁用root账户的图形与SSH登录,这是为了安全,但在某些场景你可能需要直接用root登录GNOME桌面,本文以Ubuntu2... 目录一、前言二、准备工作三、设置 root 密码四、启用图形界面 root 登录1. 修改 GDM 配

JSONArray在Java中的应用操作实例

《JSONArray在Java中的应用操作实例》JSONArray是org.json库用于处理JSON数组的类,可将Java对象(Map/List)转换为JSON格式,提供增删改查等操作,适用于前后端... 目录1. jsONArray定义与功能1.1 JSONArray概念阐释1.1.1 什么是JSONA

Java操作Word文档的全面指南

《Java操作Word文档的全面指南》在Java开发中,操作Word文档是常见的业务需求,广泛应用于合同生成、报表输出、通知发布、法律文书生成、病历模板填写等场景,本文将全面介绍Java操作Word文... 目录简介段落页头与页脚页码表格图片批注文本框目录图表简介Word编程最重要的类是org.apach