Git: журнал изменений день за днем
Как генерировать изменения в списках, сгруппированных по дате, в формате:
[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
Любая команда журнала git или умный bash script?
Ответы
Ответ 1
Вот грязная, но рабочая версия script я придумал:
#!/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
Ответ 2
Я не мог заставить принятый ответ обрабатывать сегодня, потому что моя настройка не обрабатывала переменную NEXT должным образом на первой итерации. Git параметры журнала также будут принимать время, которое устраняет необходимость в следующей дате:
#!/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
Ответ 3
git log
имеет --since
и --until
, это не должно быть сложно обернуть вокруг этого.
Ответ 4
Это потребует, безусловно, своего рода script.
Немного похоже на commandline-fu
for k in `git branch|perl -pe s/^..//`;do echo -e `git show --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" $k|head -n 1`\\t$k;done|sort -r
(не совсем то, что вам нужно, но может дать вам идею, тем не менее)
Я знаю о GitStats, который также содержит данные, организованные по дате (но не сообщениям фиксации)
Примечание: часть git branch
этой команды плохо приспособлена для сценариев, как Jakub Narębski.
git for-each-ref
или git show-ref
являются естественным кандидатом для команд сценариев, являющимися командами сантехники.
Ответ 5
Я написал script в python для создания недельного журнала git.
Вы можете легко изменить его на несколько дней, месяцев и т.д., изменив timedeltap >
https://gist.github.com/NahimNasser/4772132