GIT show提交的日期早于特定日期的特定格式

时间:2015-07-01 14:39:28

标签: git bash date git-commit

我需要使用特定格式打印最新的10个特定日期的提交。我需要处理通过bash命令获得的日期:

 date +"%Y%m%d%H%M"

我尝试了一些选项,但到目前为止没有任何选择

e.g.: git log -5 --no-merges --format=format:%cd --after=201506301524

3 个答案:

答案 0 :(得分:1)

您需要使用--until代替--after以及更正确的日期格式,但您可以使用date进行转换:

git log --no-merges --format=format:%cd -10 --until "$(date -d "$(echo "201506301524" | sed 's/....$/ &/')")"

$(echo "201506301524" | sed 's/....$/ &/')转换 20150630 1524的日期,这是日期的有效输入格式。

答案 1 :(得分:0)

您必须格式化日期,只有数字不会。使用其中之一:

--after=2015-06-30-15:24:00
--after=2015-06-30:16:24:00
--after="2015-06-30 16:24:00"

所有这些格式都被接受了。

答案 2 :(得分:0)

首先,您需要使用正确的日期格式(date +"%Y-%m-%d %H:%M:00"):

git log --no-merges --format=format:%cd --after="2015-06-30 15:24:00"

现在,您可以先使用--reverse获取最早的提交:

git log --reverse --no-merges --format=format:%cd --after="2015-06-30 15:24:00"

不幸的是,git log --reverse -10将不会返回您想要的内容,因为它会记录10个最新提交,然后反转列表(这意味着您将获得相同的列表,无论指定日期如何。)

另一种方法是在此结果上使用head

git log --reverse --no-merges --format=format:%cd --after="2015-06-30 15:24:00" | head -10