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

相关文章

将sqlserver数据迁移到mysql的详细步骤记录

《将sqlserver数据迁移到mysql的详细步骤记录》:本文主要介绍将SQLServer数据迁移到MySQL的步骤,包括导出数据、转换数据格式和导入数据,通过示例和工具说明,帮助大家顺利完成... 目录前言一、导出SQL Server 数据二、转换数据格式为mysql兼容格式三、导入数据到MySQL数据

PyCharm接入DeepSeek实现AI编程的操作流程

《PyCharm接入DeepSeek实现AI编程的操作流程》DeepSeek是一家专注于人工智能技术研发的公司,致力于开发高性能、低成本的AI模型,接下来,我们把DeepSeek接入到PyCharm中... 目录引言效果演示创建API key在PyCharm中下载Continue插件配置Continue引言

使用Python实现操作mongodb详解

《使用Python实现操作mongodb详解》这篇文章主要为大家详细介绍了使用Python实现操作mongodb的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、示例二、常用指令三、遇到的问题一、示例from pymongo import MongoClientf

关于rpc长连接与短连接的思考记录

《关于rpc长连接与短连接的思考记录》文章总结了RPC项目中长连接和短连接的处理方式,包括RPC和HTTP的长连接与短连接的区别、TCP的保活机制、客户端与服务器的连接模式及其利弊分析,文章强调了在实... 目录rpc项目中的长连接与短连接的思考什么是rpc项目中的长连接和短连接与tcp和http的长连接短

使用Python合并 Excel单元格指定行列或单元格范围

《使用Python合并Excel单元格指定行列或单元格范围》合并Excel单元格是Excel数据处理和表格设计中的一项常用操作,本文将介绍如何通过Python合并Excel中的指定行列或单... 目录python Excel库安装Python合并Excel 中的指定行Python合并Excel 中的指定列P

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

Git中恢复已删除分支的几种方法

《Git中恢复已删除分支的几种方法》:本文主要介绍在Git中恢复已删除分支的几种方法,包括查找提交记录、恢复分支、推送恢复的分支等步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录1. 恢复本地删除的分支场景方法2. 恢复远程删除的分支场景方法3. 恢复未推送的本地删除分支场景方法4. 恢复

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

Golang操作DuckDB实战案例分享

《Golang操作DuckDB实战案例分享》DuckDB是一个嵌入式SQL数据库引擎,它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的,DuckDB支持各种数据类型和SQL特性... 目录DuckDB的主要优点环境准备初始化表和数据查询单行或多行错误处理和事务完整代码最后总结Duck