git rebase : fixup commits but use latest message

标签 git rebase

我知道如何将提交压缩在一起并删除消息:

pick A do thing
pick B debug
fixup C more debugging
pick D do another thing

这将导致 3 次提交,其中 2 次调试提交被压缩为一个,并带有“调试”消息。但是,我想知道是否有一种简单的方法来fixup提交,但使用最新消息,而不是最早的消息。例如:
p A do thing
p B debug 1
f C debug 2
f D fix bug. #also remove debug statements

通过运行上面的代码,我最终会得到一个修复错误的提交,并且不会有调试语句的残余。问题是该提交将有“调试 1”的注释。我希望它有“修复错误”的消息。我知道我可以reword提交,但这会打开编辑器,并迫使我重新键入提交消息。我已经尝试改写并复制 rebase 文件中的消息,但是当 reword编辑器打开,它仍然有旧消息。

是否可以通过 fixup提交但使用最新消息,或者在 rebase 编辑器中修改提交消息,而不必为我想要的每个单独提交打开编辑器 reword ?

最佳答案

在 rebase 开始时更改您的待办事项列表以颠倒提交到 fixup 的顺序:

pick A do thing
pick C more debugging
fixup B debug
pick D do another thing

关于git rebase : fixup commits but use latest message,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49285870/

相关文章:

bash - 如何将变量注入(inject) git submodule foreach?

git - 如何将不可打印的字符添加到 .gitignore?

Git 新文件出现在所有分支

git - 当我是唯一在两个相关分支上工作的人时,我应该使用 git rebase 而不是 git merge

git - git rebase 'theirs' 中的“忽略”二进制文件

Git,重写以前的提交用户名和电子邮件

git - git 添加后存储库中缺少文件夹

ruby-on-rails - 为什么 capistrano 总是使用 git clone

git - 如果对已推送到远程的分支进行 rebase ,会发出警告吗?

git - 如何管理 Git "upstream"分支和相关补丁?