git:如何获得提交的提交消息(确切地说)?

Posted

技术标签:

【中文标题】git:如何获得提交的提交消息(确切地说)?【英文标题】:git: how to get commit message (exactly) of commit? 【发布时间】:2021-05-12 04:19:41 【问题描述】:

如何提取提交的提交消息(并且仅/完全是提交消息)?

git show https://git-scm.com/docs/git-show 似乎没有这个选项

我可以做 git cat-file -p <commit_hash> 然后搜索第一个 \n\n 并在之后的所有内容直到 EOF,或者我可以做 git log --format=%B -n 1 <commit_hash> 但什么可能与未来的 git 版本向前兼容? (当然,这永远无法保证,但可能有一种“最好的方法”)

【问题讨论】:

你看过git rev-list吗?它或多或少相当于git log 链接的答案还打印出提交的提交哈希。在第一个 \n 之前删除所有内容是否“安全”? 啊,是的。对不起,我太快把它当作一个骗子关闭了。重新开放。 查看来自 torek 的 this comment。 【参考方案1】:

我会避免尝试直接解析文件;即使底层数据格式发生变化,使用 git 命令也可能提供向后兼容的 API。

我会使用避免git log,而是使用git show,这将让您检查特定提交(而不是git log打算执行的范围)。事实上,have an option for that 确实如此,允许您指定自定义格式选项。

要仅显示提交消息主题和正文,请使用%B 格式并关闭补丁显示。

git show --pretty=format:"%B" --no-patch

【讨论】:

以上是关于git:如何获得提交的提交消息(确切地说)?的主要内容,如果未能解决你的问题,请参考以下文章

在git中实施提交消息格式

如何在 git 中编辑任何提交的提交消息? [复制]

如何找到修改文件的最新 git 提交?

如何在 git 中编辑不正确的提交消息(我已推送)?

如何通过提交消息搜索 Git 存储库?

Git:如何在 rebase 后使提交消息中的 SHA 保持最新?