git:如何(准确地)获取提交的提交消息?

use*_*931 2 git commit-message

如何提取提交的提交消息(并且仅/精确地提取提交消息)?

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 版本向前兼容?(当然,永远不能保证这一点,但可能有一个“最好的方法”来做到这一点)

Edw*_*son 5

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

我会使用 escapegit log而是使用 use git show,这将让您检查特定的git log提交(而不是打算执行的范围)。事实上,它确实有一个选项,允许您指定自定义格式选项。

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

git show --pretty=format:"%B" --no-patch
Run Code Online (Sandbox Code Playgroud)