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

相关文章

Linux ls命令操作详解

《Linuxls命令操作详解》通过ls命令,我们可以查看指定目录下的文件和子目录,并结合不同的选项获取详细的文件信息,如权限、大小、修改时间等,:本文主要介绍Linuxls命令详解,需要的朋友可... 目录1. 命令简介2. 命令的基本语法和用法2.1 语法格式2.2 使用示例2.2.1 列出当前目录下的文

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

golang 日志log与logrus示例详解

《golang日志log与logrus示例详解》log是Go语言标准库中一个简单的日志库,本文给大家介绍golang日志log与logrus示例详解,感兴趣的朋友一起看看吧... 目录一、Go 标准库 log 详解1. 功能特点2. 常用函数3. 示例代码4. 优势和局限二、第三方库 logrus 详解1.

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步