我有以下命令:git log --all --pretty=format:'%n{%n "CommitHash": "%H",%n "Author": "%an",%n "AuthorEmail": "%ae",%n "Date": "%ad",%n "Message": "%f",%n},'
我可以对其进行修改以获取以下内容:"Merge":"....."
和以下内容:Merge branch 'master' of ..........
当您使用git log --all --graph
命令时,这2件事就会出现,但是我尝试将上面命令的信息以上面介绍的漂亮格式放置,直到现在我都能得到所有这些信息2件事。
答案 0 :(得分:1)
您无法获得具有格式的"Merge":"....."
:那样根本无法使用。
您可以使用%p
(缩写的父哈希ID)或%P
(完整的父哈希ID)获得所有父哈希ID。但是请注意,您还将获得非合并提交的父哈希ID。当然,区别在于,如果有两个或多个父哈希ID(它们将用空格分隔),则所涉及的提交是合并提交。
Merge branch 'master' of <url>
文本只是提交消息的正文,在合并提交中,由进行合并的人让git pull
来指定正文内容。可通过%b
(仅正文)或%B
(主题加正文)使用。再一次,您将获得所有所有提交的信息,而不仅仅是合并提交。
如果您尝试通过任意提交(包括消息正文)生成有效的JSON,则不应仅使用--pretty=format:...
指令来尝试进行此操作,而应使用可以对消息进行任何必要更改的外部程序,正文,这样它就不会破坏JSON流。例如,包含双引号或换行符的提交消息正文将是一个问题。