特定日期的变更日志

Changelog from specific day to day

使用此脚本获取每日更新日志

echo "CHANGELOG"
echo ----------------------
git log --no-merges --format="%cd" --date=short | sort -u -r | while read DATE ; do
    echo
    echo [$DATE]
    GIT_PAGER=cat git log --no-merges --format=" * %s" --since="2019-12-15 00:00:00" --until="$DATE 24:00:00"
done

即使我不想获得这些提交,这也会回显 ECHO,

我的问题是我不想在 2019-12-15 之前获得这些日期。我只想打印2019-12-15到今天的日期

现在我得到了我想要的,但是前一个日期为空,我知道这与 while 条件有关。

所以我的问题是只获取日期和自 2019-12-15 以来的提交。

目前我得到的是 2019-12-15 之前的所有日期(没有他们的提交。

并且还获取自 2019-12-15 以来的所有提交 + 日期(这很完美)

[2019-17-12]
----COMMITS--
[2019-16-12]
----COMMITS--
[2019-15-12]
--COMMITS--
[2019-14-12]
[2019-13-12]
[2019-12-12]
[2019-11-12]

我想要这样

[2019-17-12]
----COMMITS--
[2019-16-12]
----COMMITS--
[2019-15-12]
--COMMITS--

谢谢

先捕获输出。如果为空,则以 0 退出。如果不是,则打印日期和输出。

echo "CHANGELOG"
echo ----------------------
git log --no-merges --format="%cd" --date=short | sort -u -r | while read DATE ; do
    output=$(GIT_PAGER=cat git log --no-merges --format=" * %s" --since="2019-12-15 00:00:00" --until="$DATE 24:00:00")
    if [[ -z $output ]];then
        exit 0
    else
        echo
        echo [$DATE]
        echo "$output"
    fi
done

在阅读@phd 评论后,我意识到您可以将 --since="2019-12-15 00:00:00" 添加到第一个 git log

echo "CHANGELOG"
echo ----------------------
git log --no-merges --format="%cd" --date=short --since="2019-12-15 00:00:00"| sort -u -r | while read DATE ; do
    echo
    echo [$DATE]
    GIT_PAGER=cat git log --no-merges --format=" * %s" --since="2019-12-15 00:00:00" --until="$DATE 24:00:00"
done