git:每天更新日志

tak*_*hin 20 git bash logging changelog

如何生成按日期分组的提交更改日志,格式为:

[date today]
- commit message1
- commit message2
- commit message3
...
[date day+3]
- commit message1
- commit message2
- commit message3
...
(skip this day if no commits)

[date day+1]
- commit message1
- commit message2
- commit message3
... 
[date since]
- commit message1
- commit message2
- commit message3
Run Code Online (Sandbox Code Playgroud)

任何git log命令或智能bash脚本?

tak*_*hin 24

这是脏的,但我提出的脚本的工作版本:

#!/bin/bash
# Generates changelog day by day
NEXT=$(date +%F)
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=$DATE --until=$NEXT
    NEXT=$DATE
done
Run Code Online (Sandbox Code Playgroud)


kri*_*nlm 9

因为我的设置在第一次迭代时没有正确处理NEXT变量,所以我无法得到处理今天提交的已接受答案.Git的日志参数也会接受一个时间,这样就无需使用NEXT日期:

#!/bin/bash
# Generates changelog day by 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="$DATE 00:00:00" --until="$DATE 24:00:00"
done
Run Code Online (Sandbox Code Playgroud)