Как генерировать журнал изменений фиксаций, сгруппированных по дате в формате:
[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
Какая-либо команда журнала мерзавца или умный сценарий удара?
Вот грязная, но рабочая версия скрипта, который я придумал:
#!/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
Для этого наверняка потребуется какой-то сценарий.
Немного похоже на это 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
плохо приспособлена для написания сценариев, как комментирует Якуб Наребски .
git for-each-ref
или git show-ref
являются естественными кандидатами для команд сценария, являясь командами сантехники .
git log
имеет - с
и - до
, нетрудно что-то обернуть вокруг этого.