ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я автор gitchangelog , о котором я буду говорить в следующем.
TL; DR: Возможно, вы захотите проверить собственный журнал изменений gitchangelog или вывод ascii , сгенерировавший предыдущий.
Если вы хотите сгенерировать журнал изменений из вашей истории git, вам, вероятно, придется рассмотреть:
- выходной формат .(Чистый пользовательский ASCII, тип журнала изменений Debian, Markdow, ReST ...)
- некоторые фильтрация коммитов (вы, вероятно, не хотите, чтобы все опечатки или косметические изменения попадали в ваш журнал изменений)
- некоторые передают текстовый спор перед включением в список изменений.(Обеспечение нормализации сообщений, в которых есть заглавная буква из первой буквы или последняя точка, но это также может привести к удалению некоторой специальной разметки в сводке)
- совместима ли ваша история git ?.Слияние, тегирование не всегда так легко поддерживается большинством инструментов.Это зависит от того, как вы управляете своей историей.
По желанию вам может потребоваться некоторая категоризация (новые вещи, изменения, исправления) ...
Учитывая все это, я создал ииспользуйте gitchangelog .Он предназначен для использования соглашения о коммитах git для достижения всех предыдущих целей.
Наличие соглашения о коммитах обязательно для создания хорошего списка изменений (с использованием или без использования gitchangelog
).
соглашение о коммитах
Ниже приведены предложения о том, что может быть полезно подумать о добавлении в ваши сообщения коммитов.
Возможно, вы захотитеразделите примерно ваши коммиты на большие секции:
- по назначению (например: new, fix, change ...)
- по объекту (например: doc, package, code...)
- по аудитории (например: dev, tester, users ...)
Кроме того, вы можете пометить некоторые коммиты:
- как «второстепенные» коммиты, которые не должны быть отражены в вашем списке изменений (косметические изменения, небольшая опечатка в комментариях ...)
- как «рефакторинг», если у вас нет каких-либо существенных изменений функций.Таким образом, это также не должно быть частью журнала изменений, отображаемого конечным пользователем, например, но может представлять интерес, если у вас есть журнал изменений разработчика.
- вы также можете пометить «api», чтобы пометить изменения API или новыеAPI-интерфейс ...
- ... и т. Д. *
Попробуйте написать свое сообщение о фиксации, ориентируясь на пользователей (функции) как можно чаще.
пример
Это стандартный git log --oneline
, чтобы показать, как эта информация может храниться: *
* 5a39f73 fix: encoding issues with non-ascii chars.
* a60d77a new: pkg: added ``.travis.yml`` for automated tests.
* 57129ba new: much greater performance on big repository by issuing only one shell command for all the commits. (fixes #7)
* 6b4b267 chg: dev: refactored out the formatting characters from GIT.
* 197b069 new: dev: reverse ``natural`` order to get reverse chronological order by default. !refactor
* 6b891bc new: add utf-8 encoding declaration !minor
Так что, если вы заметили, формат, который я выбралis:
{new|chg|fix}: [{dev|pkg}:] COMMIT_MESSAGE [!{minor|refactor} ... ]
Чтобы увидеть реальный результат вывода, вы можете посмотреть на конец страницы PyPI gitchangelog
Чтобы увидеть полную документацию моего коммитаСоглашение о сообщениях вы можете увидеть в справочном файле gitchangelog.rc.reference
Как создать из этого
* 1098 изысканный журнал изменений. Тогда довольно простосделать полный список изменений.Вы можете довольно быстро создать свой собственный скрипт или использовать
gitchangelog
.
gitchangelog
, чтобы сгенерировать полный журнал изменений (с поддержкой секционирования как New
, Fix
...), и его можно настроитьк вашим собственным обязательствам.Он поддерживает любой тип вывода благодаря шаблонам через Mustache
, Mako templating
и имеет устаревший движок по умолчанию, написанный на raw python;все 3 современных движка имеют примеры того, как их использовать, и могут выводить журнал изменений, как тот, который отображается на странице PyPI в gitchangelog.
Я уверен, что вы знаете, что существует множество других git log
- changelog
инструменты там тоже.