0

如果我有两个分支,并且一个已经合并到另一个分支中,我怎样才能从命令行中找到合并发生在哪个提交中而无需手动检查?

4

2 回答 2

1

(很抱歉之前的回答,阅读问题完全错误。)

您有一种情况,您在分支上curbranch(在 commit 处HEAD,但我们只curbranch在下面使用),并且您认为该分支other已合并到curbranch过去。正如在链接的问题中一样,诀窍是指定合并提交curbranchother. 根据git-rev-list 文档,这是--ancestry-path other..curbranch --merges(您可以将其传递给git log等,或在脚本中运行以提取 SHA1 值并对它们进行进一步处理)。

这有一些小问题。具体来说,仅仅因为某些东西在该祖先路径中并且是合并并不意味着它是 into 的other合并curbranch。例如,也许other被合并到accumulator,然后又accumulator被合并到curbranch

..- B - C - D - E - F  <-- curbranch
              /
..- G - H - I          <-- accumulator
      /
..- J                  <-- other

在这里,提交HE都是 (1) 的后代other,(2) 的祖先curbranch,以及 (3) 合并。您将看到两个提交。这可能是也可能不是你想要的。

于 2013-10-31T00:28:55.810 回答
0

您可以使用:

git log --merges --oneline

它只会打印合并提交。

于 2013-10-31T00:26:17.977 回答