git-获取连接到B的A的直接后代
是否有可能获得A的直系后代(即B的直系祖先)的修订列表?我尝试git-获取连接到B的A的直接后代,git,ancestor,Git,Ancestor,是否有可能获得A的直系后代(即B的直系祖先)的修订列表?我尝试git log A..B我将得到B的祖先的修订列表,这些修订不在A的历史中,这不是我想要的。我只需要直接连接A和B的版本。是:将--祖先路径添加到您的版本规范中。(这适用于任何使用提交图遍历的命令,包括git log和git rev list),但我要指出的是,我不确定这里的形容词“direct”是什么意思 请注意,A..B表示B^A,即使用集合祖先(B)-祖先(A)(这里的减法是集合减法)。添加--祖先路径意味着在执行集减法(或者更
git log A..B
我将得到B的祖先的修订列表,这些修订不在A的历史中,这不是我想要的。我只需要直接连接A和B的版本。是:将--祖先路径
添加到您的版本规范中。(这适用于任何使用提交图遍历的命令,包括git log
和git rev list
),但我要指出的是,我不确定这里的形容词“direct”是什么意思
请注意,A..B
表示B^A
,即使用集合祖先(B)-祖先(A)
(这里的减法是集合减法)。添加--祖先路径
意味着在执行集减法(或者更准确地说,在构造减法集时),Git还将减去任何不是否定版本a
后代的提交
在内部,Git通过使用名为BOTTOM的标志标记否定的提交哈希ID(如A..B
中的A
或B^A
)来实现这一点。这样的提交被收集到一个“底部列表”中,Git确保可能在a..B
范围内的每个提交C都有一个底部提交作为其祖先之一。如果您使用git rev list--祖先路径X^Y^Z
例如:提交可以是Y
或Z
的后代,那么这一点很重要\
下面是一个示例图片段,显示选择了哪些提交(
●代码>)或未选择(○代码>)即使它们“在”A..B的范围内:
...--A--●---●--B--...
\ \ /
○--●--●
请注意,提交A
未被选中,而提交B
已被选中,在这里。尚未对其进行检查,但听起来像是我的答案,因此将其标记为这样。谢谢