如何在 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 列表?的主要内容,如果未能解决你的问题,请参考以下文章

如何在JS中判断系统当前时间是不是在一周的周五下午4点到周日的晚上12点时间段内,JS怎么写,请各位指教

数据框转移python熊猫

在 SQL 中搜索两次之间的变量

抖音白天与晚上触发不同特效的Graph节点编写

抖音白天与晚上触发不同特效的Graph节点编写

抖音白天与晚上触发不同特效的Graph节点编写