如何在 Bash 中获取前天晚上 7 点到昨天晚上 7 点的提交和 MR 列表?
Posted
技术标签:
【中文标题】如何在 Bash 中获取前天晚上 7 点到昨天晚上 7 点的提交和 MR 列表?【英文标题】:How can I get the list of commit and MR from 7pm before yesterday to 7pm yesterday in Bash? 【发布时间】:2022-01-09 17:34:22 【问题描述】:我正在使用此脚本从特定日期和时间获取所有提交和 MR。但我显然做错了什么。我不确定如何在 Bash 从昨天晚上 7 点到昨天晚上 7 点获得它们? (即:我们在星期三我想要在星期一晚上 7 点到星期二晚上 7 点之间发生的提交和 MR)
我也想在所有子模块上应用这个脚本,是否可以使用 git submodule foreach?
提前感谢您的回复
#!/bin/bash
echo "============================================ Merges====================================================="
git log --since=before.yesterday.7:00pm --until=yesterday.7:00pm --merges --format="%s"
echo "============================================ commits ====================================================="
git log --since=before.yesterday.7:00pm --until=yesterday.7:00pm --no-merges --format="%s"
【问题讨论】:
“合并请求”不是 git 原生概念,它只存在于 Gitlab UI 中,因此git log
可以仅显示提交,其中一些将是合并提交。也就是说,你还没有真正解释你的问题:你说你“显然做错了什么”,但不是你为什么这么认为 - 当你运行这个命令时会发生什么,你想要发生什么?跨度>
感谢您的回复。我正在使用 gitlab,所以这就是我谈论合并请求而不是拉取请求的原因。所以我还需要找到一种方法来显示合并请求。但我的问题主要是关于 since 选项。我想要从晚上 7 点到晚上 7 点使用脚本的前 24 小时的提交和 MR 列表,我举了一个例子。
好的,我明白了你想要做什么,并且可以看到你已经尝试了一些命令 - 但是当你运行那些让你认为你“做错了什么”的命令时发生了什么?有错误信息吗?输出是否不包括您期望的提交?有没有一个卡通人物突然出现说“你做错了什么”?
拜托了,我知道我做错了什么,因为我不笨。我刚刚在 before.yesterday 中写了 since 选项,因为这是我想做的,但这显然不是这样做的方法。
我不是要批评你,我只是想问你细节 - 当你运行该代码时会发生什么?我不知道你是否寻求帮助以解决错误消息,或者只是获得不符合您期望的结果。
【参考方案1】:
可能还有其他问题,但第一个明显的问题是:
--since=<em>date</em>
,--after=<em>date</em>
显示比特定日期更近的提交。
--until=<em>date</em>
,--before=<em>date</em>
显示早于特定日期的提交。
你的两个日期都是yesterday.7:00pm
。我知道您将第一个显示为 before.yesterday.7:00pm
,但此处的 before 一词只是噪声填充物。因此,您要求提交比昨天晚上 7 点更近但不比昨天晚上 7 点更近的提交。至多,昨天恰好下午 7 点所做的提交可能符合这个描述(取决于从开始到结束的边界条件)。
例如,您可能希望询问“从两天前晚上 7 点到昨天晚上 7 点”。
(请注意,since 和 until 使用提交者日期,而不是作者日期。)
【讨论】:
以上是关于如何在 Bash 中获取前天晚上 7 点到昨天晚上 7 点的提交和 MR 列表?的主要内容,如果未能解决你的问题,请参考以下文章