这里的问题是,图形方面的问题是“我如何知道 A 是否是 B 的祖先?” (为您想要成为 B 的每个分支重复几次)。回答这个问题的唯一方法是从 B 开始沿着历史图走下去,然后检查是否找到了 A。您可以通过几种方式做到这一点,但最有效的通常是将问题简化为“A 是 A 和 B 的合并基础吗?”。您可以通过 git2go 在 git2go 中提出这个问题Repository.MergeBase()。这将返回您提供的两次提交之间的最佳合并基础。在您希望其中一个提交作为合并基础的情况下,这应该始终提供正确的答案,即使它将答案缩减为单个合并基础。