编辑数百条 Git 提交消息的最快方法是什么?

2024-04-20

我有一个相当大的 Git 存储库,有 1000 次提交,最初是从 SVN 导入的。在公开我的存储库之前,我想清理数百条在我的新存储库中没有意义的提交消息,并删除所有添加的 git-svn 信息文本。

我知道我可以使用“git rebase -i”,然后使用“git commit --amend”来编辑每个单独的提交消息,但是要编辑数百条消息,这是一个巨大的痛苦。

有没有更快的方法来编辑所有这些提交消息?理想情况下,我将每条提交消息都列在一个文件中,我可以在一个地方编辑它们。

Thanks!


这是一个老问题,但由于没有提到git filter-branch,我只是加上我的两分钱。

我最近不得不批量替换提交消息中的文本,将一段文本替换为另一段文本,而不更改其余的提交消息。例如,我必须更换参考:#xxxxx with 参考文献:#22917.

I used git filter-branch像这样

git filter-branch --msg-filter 'sed "s/Refs: #xxxxx/Refs: #22917/g"' master..my_branch
  • 我使用了该选项--msg-filter仅编辑提交消息,但您可以使用其他过滤器来更改文件、编辑完整提交信息等。
  • 我有限filter-branch仅将其应用于不在 master 中的提交(master..my_branch)但您可以通过省略提交范围将其应用到整个分支。

按照文档中的建议,在您的分支副本上尝试此操作。 希望有帮助。


答案使用的来源

  • 关于何时使用该函数的用例:https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History#The-Nuclear-Option:-filter-branch https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History#The-Nuclear-Option:-filter-branch
  • 功能参考(带有选项列表):https://git-scm.com/docs/git-filter-branch https://git-scm.com/docs/git-filter-branch
  • 重写的例子:https://davidwalsh.name/update-git-commit-messages https://davidwalsh.name/update-git-commit-messages
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

编辑数百条 Git 提交消息的最快方法是什么? 的相关文章

随机推荐