type
status
date
slug
summary
tags
category
icon
password
Property
Jun 6, 2024 02:01 PM

背景
在我们的业务开发中,最常见的就是使用
Git
对代码进行版本控制。随之衍生的,就是有可能会遇到修改 Commit Message 的场景,今天我们来总结一下这些基本的操作。应用场景
准备环境
我们先初始化一个仓库,里面提交一些 commit。

我这里是有五次提交,分别添加:a,b,c,d,e。
修改最近一次的 Commit
输入之后我们可以进入 vi 编辑模式对 Git Commit 信息进行编辑

我们输入
i
编辑,退出是:按键 esc
,再在底部输入:x
即可。
可以看到,此时最后一个的 commit message 已经修改了。

修改非最后一次的 Commit 信息
比如我们想修改 b 节点-
* be12459 - b (17 minutes ago)
这个节点的信息,我们需要使用到git rebase
命令。我来简单示范一下。git rebase 的操作是变基,我们要信息 b 的信息,因此就要变到 b 的前一个:a 的后面,因此我们使用 a 的 hash 来操作
我们就可以进入一个 vi 编辑的模式

我对下面的提示做个简单的翻译
可以发现我们使用
就可以达到目的了。 我们修改 b 的操作 tag 为 r,这个时候不用修改 commit 信息,在后面修改。

接下来会自动进入页面,我们修改 b 的 commit 信息

验证下结果,明显成功了。

删除一个 commit 信息
比如此处我要删除 C 的提交信息,但是保留 C 的文件修改。我们经过上一步,我们使用 f 就是了。

结果如下:

发现 C 提交的信息的删除了,但是 C 提交的文件修改还是存在的,所造成的文件修改最终归于 C 的上一个提交:
b-edit
去了。
结语
简单总结了下平常在工作中遇到的修改 Git commit 信息的方法,留以备忘。
- 作者:Kitety
- 链接:https://www.kitety.com/article/git-modify-commit-information
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。