问题描述
如何提取提交的提交消息(并且仅/完全是提交消息)?
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 命令也可能提供向后兼容的 API。
我会使用避免 git log
而是使用 git show
,这将让您检查 特定 提交(而不是 git log
打算检查的范围)做)。事实上,它确实 have an option for that,允许您指定自定义格式选项。
要仅显示提交消息主题和正文,请使用 %B
格式并关闭补丁显示。
git show --pretty=format:"%B" --no-patch