如何在存在旧提交历史的情况下开始使用自动生成的变更日志

How to start using automatically generated changelog with old commit history present

在一家公司,我们有一个项目已经进行了一段时间。在这个项目中,我们使用 git 进行版本控制。我们正在努力使我们的 git 工作流程更专业、更易于协作。我们要采取的步骤之一是自动生成变更日志,例如generate-changelog。这个包要求提交我们的格式遵循 Angular 提交消息格式。

我很乐意在未来按照这种格式编写所有提交,但是我们仍然有很多(几百个)不遵循这种格式的提交。同时,我想让更新日志自动生成。

有没有办法自动生成变更日志,尽管旧的提交消息不符合要求的格式?或者我们是否可以 'update' 提交消息,以便我们确实遵循所需的格式?

如果您需要更多信息,请告诉我,我会相应地更新问题。

更新: 我想在所有旧的提交消息前加上一些文本,例如:docs:。按照建议进行交互式变基 here and in the does work, but only if you have a few commit messages. I am looking for a way to change all commit messages at once. An exmaple that I did not get to work yet can be found in this SO question/answer

好吧,考虑到您不想为您的实际历史编写更新日志文件,选项是 change old commit messages

如链接答案中所述,您应该 运行 git rebase -i HEAD~n,其中 n 是您要更改的提交数。可以使用 --root 标志代替 HEAD~nrebase 命令中选择整个历史记录,如图 here:

git rebase -i --root

在交互式 rebase 期间,您将在一行中看到每个选定的提交。由于您只想重写它的消息,您可以使用 reword 关键字标记它的行,根据需要更改等效的提交消息

之后,保存更改并运行 generate-changelog 获取自动更改日志文件