获取git日志以显示给定提交的合并提交者

时间:2019-10-03 12:04:47

标签: git

我正在尝试获取“ git log”以单行格式显示给定分支的提交列表。

目前我有:

git log --no-merges --pretty='format:%cN, %s'

哪个会产生:

Sarah Developer, Updated the flange pipe
Fred Tester, Implemented new testing methodology

但是我要添加的是 merge 提交的提交者的名称,该提交将提交到该分支(如果有)的末尾,这样我就得到了一些东西喜欢...

Sarah Developer, Updated the flange pipe, Pauline Techarchitect
Fred Tester, Implemented new testing methodology, Hannah Senior

这可能吗?

1 个答案:

答案 0 :(得分:3)

我认为git中不存在这样的功能。

可能会发生这种情况的想法似乎是基于对git分支概念的一点不准确的理解。

从技术上讲,在git(与某些其他VCS相反)中,分支只是指向提交的指针。 分支概念不包括提交先前指向的分支指针的历史记录。
(可能不完全正确。有分支reflog,但是只包括本地发生的分支事件,因此无法用于此类事情)

如果我有这样的提交历史记录:

*   59817c7 - (HEAD -> master) merge commit
|\  
| * 4e5cf26 - commit b
* | dd09b38 - commit a
|/  
* e27e6cc - base commit

您无法确定是否在主分支上创建了commit acommit b,而在分支分支上创建了另一个。 (除非您从默认的合并提交消息中读取信息)。 两次提交相等。两者都是master分支历史记录的一部分,因为master分支的历史记录包括从master分支指向的提交中可以到达的所有提交。

我们喜欢用口头想起的分支概念(即,合并提交的父对象之一是“主分支”,另一个“是”要素分支)由您的工作流程定义,但是它是在技​​术上没有内置到git信息模型中。