在过去24小时内添加到master的日志提交

时间:2015-10-16 07:42:33

标签: git git-log

我正在尝试显示过去24小时内添加到git log --format=format:%s --no-merges --since='24 hours ago' 分支的提交(不包括合并提交)。目前我正在使用此命令:

master

但是这有一个问题:如果提交超过24小时,但在过去24小时内合并到master分支,则该命令不会列出提交。是否可以显示过去24小时内添加到git reflog分支的提交,而不是过去24小时内创建的提交?

请注意我在干净的CI工作区中执行此操作,因此a.js无法帮助我。

提前致谢!

1 个答案:

答案 0 :(得分:3)

我认为rev-list就是你想要的。

试试这个:

git rev-list --no-merges '^<24-hour-old-commit>' HEAD

应该列出所有可以从提交HEAD访问的非合并提交,但不能从提交<24-hour-old-commit>访问。

例如,在此修订图中,它列出了大写提交,但不是小写:

a - b - c - 24h - H - i - J - K - HEAD
     \               /
      D - E - F - G '

提交HJKHEAD都不到24小时。提交i也更年轻,但由于它是合并提交而被省略。提交DEFG可能是任何年龄,但仅在过去24小时内合并,因此也会列出。

在上述命令中,--max-age--since选项会遇到与git log相同的问题,但可以使用它们为您查找<24-hour-old-commit>

git rev-list -n1 --before="24 hours" --first-parent HEAD

也就是说,&#34;只提供1个提交ID,必须至少24小时,并且在当前分支上#34;。

全部放在一起:

git rev-list --no-merges HEAD \
             --not $(git rev-list -n1 --before="24 hours" --first-parent HEAD)

(注意:--not abcdef是说^abcdef的另一种方式,除了它适用于所有后面的参数,因此重新排序选项。)

rev-list的默认输出只是原始修订版,但您可以使用git log选项使其更像--pretty--pretty=short与您习惯的大致相同。