过去 24 小时内添加到 master 的日志提交
Log commits added to master in last 24 hours
我正在尝试显示在过去 24 小时内添加到 master
分支的提交(不包括合并提交)。目前我正在为此使用此命令:
git log --format=format:%s --no-merges --since='24 hours ago'
然而这有一个问题:如果一个提交早于 24 小时,但在最近 24 小时内合并到 master
分支,该命令将不会列出该提交。是否可以显示过去 24 小时内添加到 master
分支的提交,而不是过去 24 小时内创建的提交?
请注意我在一个干净的 CI 工作区中执行此操作,因此 git reflog
无法帮助我。
提前致谢!
我觉得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 '
提交 H
、J
、K
和 HEAD
都不到 24 小时。提交 i
也更年轻,但由于它是合并提交而被省略。提交 D
、E
、F
和 G
可能是任何年龄,但仅在最近 24 小时内合并,因此它们也被列出。
在上面的命令中,--max-age
或 --since
选项会遇到与 git log
相同的问题,但它们可用于查找 <24-hour-old-commit>
你:
git rev-list -n1 --before="24 hours" --first-parent HEAD
即"give only 1 commit ID, that must be at least 24 hours old, and is on the current branch".
综合起来:
git rev-list --no-merges HEAD \
--not $(git rev-list -n1 --before="24 hours" --first-parent HEAD)
(注意:--not abcdef
是 ^abcdef
的另一种说法,除了它适用于 所有 参数,因此重新排序选项。)
rev-list
的默认输出只是原始修订,但您可以使用 --pretty
选项使其更像 git log
。 --pretty=short
与您习惯的大致相同。
我正在尝试显示在过去 24 小时内添加到 master
分支的提交(不包括合并提交)。目前我正在为此使用此命令:
git log --format=format:%s --no-merges --since='24 hours ago'
然而这有一个问题:如果一个提交早于 24 小时,但在最近 24 小时内合并到 master
分支,该命令将不会列出该提交。是否可以显示过去 24 小时内添加到 master
分支的提交,而不是过去 24 小时内创建的提交?
请注意我在一个干净的 CI 工作区中执行此操作,因此 git reflog
无法帮助我。
提前致谢!
我觉得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 '
提交 H
、J
、K
和 HEAD
都不到 24 小时。提交 i
也更年轻,但由于它是合并提交而被省略。提交 D
、E
、F
和 G
可能是任何年龄,但仅在最近 24 小时内合并,因此它们也被列出。
在上面的命令中,--max-age
或 --since
选项会遇到与 git log
相同的问题,但它们可用于查找 <24-hour-old-commit>
你:
git rev-list -n1 --before="24 hours" --first-parent HEAD
即"give only 1 commit ID, that must be at least 24 hours old, and is on the current branch".
综合起来:
git rev-list --no-merges HEAD \
--not $(git rev-list -n1 --before="24 hours" --first-parent HEAD)
(注意:--not abcdef
是 ^abcdef
的另一种说法,除了它适用于 所有 参数,因此重新排序选项。)
rev-list
的默认输出只是原始修订,但您可以使用 --pretty
选项使其更像 git log
。 --pretty=short
与您习惯的大致相同。