GIt Squash 多个提交压缩提交

假设你有一个名为 feature 的分支,它包含三个提交(A, B, C),并且你想将这三个提交压缩成一个。下面是如何做到这一点的。

首先,找出你要开始压缩的那个最早提交的哈希值。在这个例子中,我们假设 A 是最早的提交。你可以通过运行 git log 命令来查看提交历史并找到提交 A 的哈希值。

开启交互式 rebase 模式

git rebase -i ^

这里 是提交 A 的哈希值。^ 符号表示该提交的前一个提交。

Squash 合并

将你希望合并的每个提交行前面的 pick 改为 squashs。第一行(最早的提交)应保留为 pick

# 根据rebase -i 提交目标hash值打开编辑界面
git rebase -i 71c24d47b2f68d0465c3e3defa48311c3d592036

# 接着会弹出如下界面  s -- squash ,被合并的提交 pick 改为s(squash)
pick 5c079ff120 fix
s 316e094548 fix status log
s a79cbdc0f3 脱手重复key问题修复
s df8650aa3f [feat] add hmi
s ff74bd1bf1 [feat] add curise speed
s 08bf230667 [fix] cruise_speed_limit
s 71c24d47b2 [feat]: 15s hod
s 26f7d3f83d Updated mff_aeb_config.json

保存并关闭编辑器。

Git 默认使用的编辑器可能是 Vim, Nano 或者其他的,这取决于你的系统配置。

这里以 Vim 和 Nano 为例说明如何保存并退出:

Vim :

        1、在 Vim 中,按 Esc 进入命令模式

        2、输入 :wq (意思是 write and quit,即保存并退出),然后按 Enter

Nano:

        1、按 Ctrl+O 来保存文件(你会在底部看到提示 "File Name to Write")

        2、然后,按 Enter 确认文件名

        3、最后,按 Ctrl+X 退出编辑器

设置默认编辑器:

        git config --global core.editor vim

如果你选择了任何提交进行压缩,Git 将再次打开一个编辑器,让你修改新的合并提交消息。这将是所有被挑选和压缩提交的提交消息的组合。

GIt Squash 多个提交压缩提交_第1张图片

在这里,你可以整理你的提交消息,删除不需要的部分或者添加更多的细节。

保存并关闭编辑器会创建新的合并提交。

推送到远端

现在,你可以用以下命令强制推送你的更改到远程存储库:

git push origin feature --force

就这样,你已经成功地将分支 feature 的三个提交压缩为一个了!

你可能感兴趣的:(git)