我发现自己有时会这样做:
git rebase -i HEAD~2
这向我展示了两个提交,HEAD~1
并且HEAD
. 我更改pick
为f
修复HEAD
到HEAD~1
. 现在,我将我最近的两个提交合并为一个提交,该提交仅包含来自旧提交的提交消息。
是否有命令/快捷方式/选项可以快速执行此操作?
如果我想将最近的三个提交修复为第四个最近的提交怎么办?
我能找到的唯一解决方案是编写一个为您执行此操作的脚本。但我正在寻找已经内置在 git 中的东西。
我发现自己有时会这样做:
git rebase -i HEAD~2
这向我展示了两个提交,HEAD~1
并且HEAD
. 我更改pick
为f
修复HEAD
到HEAD~1
. 现在,我将我最近的两个提交合并为一个提交,该提交仅包含来自旧提交的提交消息。
是否有命令/快捷方式/选项可以快速执行此操作?
如果我想将最近的三个提交修复为第四个最近的提交怎么办?
我能找到的唯一解决方案是编写一个为您执行此操作的脚本。但我正在寻找已经内置在 git 中的东西。
一种解决方案是使用git reset HEAD~1
. 这将删除最后一次提交并将其更改放在您的暂存区域。然后,您可以使用git commit --amend -a --no-edit
. 该--no-edit
标志使其使用相同的提交消息。
请注意,只有当您有一个干净的工作目录时才能执行此操作。否则,您会将所有未提交的更改压缩到同一个提交中。
它以这个单行结束,您可以输入别名以方便使用:
git reset HEAD~1 && git commit --amend -a --no-edit
作为 git 别名:
git config --global alias.squashLast2 '!git reset HEAD~1 && git commit --amend -a --no-edit'