修复 Git 中的所有提交消息

Fix All Commit Messages in Git

我正在将 Subversion 存储库迁移到 git。我们强制执行这样的提交消息格式:

[#<Issue Number Here>] The commit message.

在迁移过程中,我注意到有些人像这样在提交消息中添加了一个新行:

[#<Issue Number Here>]
The commit message.

我将在迁移完成后添加一个预提交挂钩来强制执行我们的消息格式,但是在我使用 git svn 克隆源存储库后如何修复现有的所有提交消息?

使用filter-branch

git filter-branch --msg-filter fix-imported-msg.sh HEAD

(您需要编写自己的 fix-imported-msg.sh 脚本来获取 stdin 上的原始消息,并将更正后的版本写入 stdout)。

如果你有多个分支,如果你已经推送了导入的 repo 等,这会稍微复杂一些