Как генерировать и вести историю кода с помощью git log.

Документация проекта, сохраняющая шаблон и хорошую историю сообщений о фиксации, может быть создана с помощью команды git log. Файлы изменений CHANGELOG, или заметки о выпуске RELEASE NOTES, могут значительно облегчить сопровождение и прослеживаемость кода.

Подкоманда log команды git показывает все коммиты в репозитории и является полезным инструментом для изучения истории проекта. На его выходе можно создавать проектную документацию, например, заметки о выпуске и журналы изменений. Установление четких и значимых сообщений о фиксации может стать мощным инструментом в наборе инструментов проектной документации.

Хорошая история фиксации может быть достигнута с помощью лучших практик, таких как описанные в модели Conventional Commits, которая предлагает набор правил для создания явной истории фиксации, упрощая создание или использование автоматизированных инструментов для этой цели.

Генерация уведомлений об изменениях или релизов

Вы можете генерировать, вводя теги, которые будут отфильтрованы

git log --oneline v0.1.0...v0.1.1
Войдите в полноэкранный режим Выход из полноэкранного режима

Вывод команд может быть перенаправлен в файл, как показано в примере:

git log --oneline v0.1.0...v0.1.1 >> CHANGELOG # OR RELEASE_NOTES
Войдите в полноэкранный режим Выход из полноэкранного режима

Файл, определенный в выводе команды, может быть версионирован или использован в каком-либо инструменте, который представляет пользователям то, что было изменено в последнем выпуске системы.

Флаг форматирования --online определяет, что мы хотим получить сжатую версию каждого коммита, по одному коммиту в строке.

13abc49 docs(about): improves about page infos
9f4c7c3 ci(fix): adjustments on deploy stages
caf2d83 build(migration): migrates site to firebase
070da73 refactor(content): It centralizes the way to load content
4ef6b8d test(dynamics): Fix tests
cfd6bd5 fix(project): Fix SEO and improve fetch
2ee58e5 ci(workflow): Update ci
0d29391 ci(actions): Fix environment var names
7648d85 build(nuxt): Update project dependencies
...
Войдите в полноэкранный режим Выход из полноэкранного режима

Настройка вывода журнала

Чтобы определить, какими будут значения, сообщаемые в журнале, в соответствии с потребностями проекта, можно использовать флаг --format.

git log --format=">> %h %s"
Войдите в полноэкранный режим Выход из полноэкранного режима

В данном примере удаление хэша при выходе. Дополнительные параметры фильтрации можно найти в документации в разделе ПРАКТИЧЕСКИЕ ФОРМАТЫ

>> ci(scp): removes scp deploy task
>> docs(about): improves about page infos
>> ci(fix): adjustments on deploy stages
>> build(migration): migrates site to firebase
>> refactor(content): It centralizes the way to load content
>> test(dynamics): Fix tests
>> fix(project): Fix SEO and improve fetch
>> ci(workflow): Update ci
>> ci(actions): Fix environment var names
>> build(nuxt): Update project dependencies
...
Войдите в полноэкранный режим Выход из полноэкранного режима

Shortlog

Команда shortlog особенно полезна при создании заметок о выпуске для проектов с большим количеством соавторов. Вы можете сгенерировать вывод с коммитами, сгруппированными по авторам и отсортированными по имени.

Наряду с --форматом, введя флаг -n, вы можете просмотреть количество коммитов по каждому автору.

Команда:

git shortlog -n --format="%s" 3.2.7...3.2.8
Войдите в полноэкранный режим Выход из полноэкранного режима

Производит вывод:

Mariusz Felisiak (7):
      [3.2.x] Post-release version bump.
      [3.2.x] Added stub release notes for Django 3.2.8.
      [3.2.x] Fixed #33082 -- Fixed CommandTests.test_subparser_invalid_option on Python 3.9.7+.
      [3.2.x] Corrected outputs and made cosmetic edits in GeoDjango tutorial.
      [3.2.x] Used :rfc: role in docs/topics/conditional-view-processing.txt.
      [3.2.x] Fixed broken links and redirects in docs.
      [3.2.x] Corrected field and model check messages in docs.

Carlton Gibson (3):
      [3.2.x] Fixed #33083 -- Fixed selecting all items in the admin changelist when actions are both top and bottom.
      [3.2.x] Added release date for 3.2.7.
      [3.2.x] Bumped version for 3.2.8 release.

Adam Johnson (1):
      [3.2.x] Refs #31055 -- Doc'd 'databases' argument of check functions.

Claude Paroz (1):
      [3.2.x] Removed obsolete GEOS 3.5 requirement note.

David Sanders (1):
      [3.2.x] Clarified type of Window()'s partition_by and order_by arguments.

David Smith (1):
      [3.2.x] Doc'd Jinja2 form renderer.

Jacob Walls (1):
      [3.2.x] Fixed typo in docs/topics/i18n/formatting.txt.

Ken Whitesell (1):
      [3.2.x] Fixed #33077 -- Fixed links to related models for admin's readonly fields in custom admin site.

Sarah Abderemane (1):
      [3.2.x] Refs #27694 -- Doc'd lookups that can be chained with HStoreField key transforms.

Steven Maude (1):
      [3.2.x] Fixed typo in docs/intro/reusable-apps.txt.
Войдите в полноэкранный режим Выход из полноэкранного режима

Ссылки

  • https://www.git-scm.com/docs/git-log
  • https://www.conventionalcommits.org/pt-br/v1.0.0-beta.4/
  • https://github.com/django/django/

Оцените статью
devanswers.ru
Добавить комментарий