如何在rebase期间一次编辑多个提交消息?

时间:2013-11-12 12:57:20

标签: git

我想重新格式化几个提交的提交消息(大约30个)。在许多提交中,我忽略了在“短”消息之后添加换行符,这导致了此问题中描述的问题:How to output git log with the first line only?,所以我想重写包含此换行符的提交消息。

我运行了命令git rebase -i -p <commit-id of last good commit>,如本答案中所述:How do I edit an incorrect commit message in Git?,然后在打开的编辑器窗口中,我将pick替换为reword以进行提交消息我想编辑。

这导致每次提交一次一个git打开文本编辑器。我猜它是这样设计的,因为git需要在每次更改后进行rebase。

但是,在这种情况下,我只更改提交消息,而不是更改任何文件。是否可以通过立即打开所有文本编辑器窗口来加快速度?

例如,如果这些窗口可以在一个文本编辑器进程的多个缓冲区中打开(大多数文本编辑器支持这个),那么我可以使用多缓冲区操作,如gvim的bufdo命令。

1 个答案:

答案 0 :(得分:1)

简单方法:只需将正确的密钥序列放入复制粘贴缓冲区,然后单击鼠标中键(或使用终端仿真器的粘贴功能)即可应用。

参与方式越多:使用git filter-branch。例如,要在第二个位置添加空行,您可能会使用以下内容:

git filter-branch --msg-filter 'sed "1a\\\\"' from..

其中from是对您上一次良好提交的引用。