获取git中的提交范围

时间:2015-11-24 06:50:09

标签: git logging range

我需要从特定范围内获取git提交,所以我一直在使用

git log old_commit..new_commit

当只添加了1个新提交,并且新旧提交为git commit -m ''git pull

时,它可以很好地分开

例如:

commit XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Merge: XXXXXXY XXXXXXZ
Author: name <name@domain.com>
Date:   Fri Nov 20 11:45:33 2015 +0200

    Merge branch 'master' of xxxxxx.xx:xxxxxxx

commit XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXY
Author: name <name@domain.com>
Date:   Fri Nov 20 11:45:05 2015 +0200

    some commit message here

(请注意,序列可能采用不同的顺序 - 首先合并然后提交)

我的意思是,当我这样做时:

git log XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXY..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  

它的行为意外,而不是1(最后)提交,它输出更多其他。

我做错了吗?合并和提交是否被视为一个或一个什么?

1 个答案:

答案 0 :(得分:1)

old..new实际上意味着,所有旧的可以通过旧的无法访问的提交。您可以在此reachable替换is an ancestor of

由于您的new是合并提交,old..new的输出将是old的祖先不是所有提交。

enter image description here

在上图中,提交指向其父母(即箭头方向为child --> parent