Если ты оформляешь релизы или просто хочешь видеть историю изменений красиво, не нужно писать CHANGELOG.md вручную. Bash + git log = автоматическая генерация понятного и читаемого списка коммитов по тегу или дате.
🛠 Простой changelog между тегами
#!/bin/bash
PREV_TAG=$(git describe --abbrev=0 --tags HEAD^)
CURRENT_TAG=$(git describe --tags)
echo "## Changelog: $PREV_TAG → $CURRENT_TAG" > CHANGELOG.md
git log "$PREV_TAG..$CURRENT_TAG" --pretty="* %s (%an)" >> CHANGELOG.md
▪️ Пример вывода:
## Changelog: v1.2.0 → v1.3.0
* Добавлен скрипт автообновления (admin)
* Фикс логирования ошибок в cron (dev)
* Обновлена документация (docs)
▪️ По дате: за последнюю неделю
git log --since="7 days ago" --pretty="* %h %s (%an)" > changelog_this_week.md
▪️ Возможные расширения:
📍 Группировка по типу коммита (feat, fix, chore)
📍 Сортировка по автору или дате
📍 Добавление ссылок на GitHub ([#123](https://github.com/...))
📍 Генерация changelog на каждый git tag с сохранением в releases/
⭐️ Совет: Добавить в Makefile или
release.sh:
changelog:
bash scripts/gen_changelog.sh
И у тебя всегда будет свежий, читаемый список изменений для клиентов или команды.
BashTex 📱 #bash