Фиксация спецификации и генерация журнала изменений

Байду внешний интерфейс Командная строка Angular.js

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

Например, однажды возникает проблема с функцией, которую вы написали сами.Вы находите место, где был изменен код, и обнаруживаете, что коллега изменил строку кода.В это время вы сбиты с толку, потому что он ни написанных комментариев, ни зафиксированных записей.Я просто написал предложение вскользь, и я не понимаю, почему я изменил его так. Если вы хотите изменить его обратно, но боитесь повлиять на другие места, если вы не вернете его обратно, вы можете найти способ только изменить свою первоначальную логику.

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

Спецификация коммита Git

Нормативное принятиеAngular Git Commit Guidelines

Формат сообщения фиксации

Каждое сообщение Commit состоит из трех частей:header, bodyа такжеfooter.

Заголовок особенный и тоже состоит из трех частей:type, scopeа такжеsubject

Конкретный формат выглядит следующим образом:

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>

Длина каждой строки не может превышать 50 китайских иероглифов.

Revert

If the commit reverts a previous commit, it should begin with revert:, followed by the header
of the reverted commit.
In the body it should say: This reverts commit <hash>., where the hash is the SHA of the commit
being reverted.
A commit with this format is automatically created by the [git revert][git-revert] command.

Тип (обязательно)

Тип этой фиксации должен быть одним из следующих:

  • feat: новая функция
  • fix: исправление ошибки
  • docs: Только измененная документация, такая как README, CHANGELOG, CONTRIBUTE и т. д.
  • style: модификации, не влияющие на логику кода, такие как пробелы, форматирование отступов, удаление точек с запятой и т. д.
  • refactor: Рефакторинг
  • perf: Изменения для повышения производительности
  • test: добавить или изменить тесты
  • chore: изменить процесс сборки или добавить вспомогательные инструменты, зависимые библиотеки и т. д.

Область действия (необязательно)

область используется для указания области, на которую влияет фиксация

You can use * when the change affects more than a single scope.

Тема (обязательно)

В теме краткое описание модификации:

* 以动词开头,使用第一人称现在时,比如change,而不是changed或changes
* 首字母小写
* 结尾不加句号

Тело (по желанию)

Подробное текстовое описание цели и мотивации этой редакции:

* 具体增加了什么功能?
* 为什么要这样修改?
* 如何解决这个问题的?
* 是否存在副作用或其它风险?

Нижний колонтитул (необязательно)

Breaking ChangesТо есть нарушающие изменения, такие как несовместимые изменения.

Также может использоваться для закрытия проблем, закрытие № 123, № 245, № 992.

Это в основном не используется в обычных бизнес-проектах.

инструмент фиксации - коммит

Сначала установите Commitizen cli:

npm install commitizen -g

Затем выполните следующие команды в своем проекте (требуется для каждого нового проекта):

commitizen init cz-conventional-changelog --save-dev --save-exact

После этого вы можете использоватьgit czзаменятьgit commitПоданный:

image

Просмотр конкретных документовcz-cli.

шаблон фиксации

Для общей разработки проекта использование коммита cli для каждой отправки по-прежнему занимает много времени, и легко выбрать неправильный, если вы нажмете слишком быстро, поэтому рекомендуется использовать шаблон коммита в ежедневной разработке.

метод первый:

Щелкните правой кнопкой мыши, чтобы открыть интерфейс настроек TortoiseGit.

image

Добавить шаблон коммита

image

Примечание. Путь должен быть разделен двумя обратными или косыми чертами, шаблон должен создать файл txt и записать его самостоятельно.

Как это выглядит при фиксации с TortoiseGit:

image

Способ второй:

Используйте родной git

git config  — —global commit.template  [模板文件名] 

Примечание. Этот метод ранее не использовался. Если у вас возникнут проблемы, обратитесь к Baidu самостоятельно.

Автоматически создавать журнал изменений

Пока сообщение коммита соответствует спецификации Angular, мы можем использоватьstandard-versionТакой инструмент для автоматической генерации файлов CHANGELOG.

стандартный журнал изменений основан наconventional-changelogинструмент, который используется следующим образом:

Первая установка в среду разработки

npm install --save standard-changelog

Затем настройте package.json

"scripts": {
    "release-f": "standard-version -f",
    "release-major": "standard-version -r major",
    "release-minor": "standard-version -r minor",
    "release-patch": "standard-version -r patch"
}

Параметры команды CLI:

-i, --infile              Read the CHANGELOG from this file
-f, --first-release       Generate the CHANGELOG for the first time
-o, --outfile             Write the CHANGELOG to this file. If unspecified (default: CHANGELOG.md)
-s, --same-file           Overwrite the infile (default: true)
-p, --preset              Name of the preset you want to use (default: angular)
-k, --pkg                 A filepath of where your package.json is located
-a, --append              Should the generated block be appended
-r, --release-count       How many releases to be generated from the latest(like npm version <major|minor|patch|1.1.0>) [字符串]
-v, --verbose             Verbose output
-c, --context             A filepath of a json that is used to define template variables
-l, --lerna-package       Generate a changelog for a specific lerna package (:pkg-name@1.0.0)
--commit-path             Generate a changelog scoped to a specific directory

основной: обычно представляет собой обновление основной версии; дополнительный: представляет собой добавление функций; патч: представляет собой исправление ошибок основной: 1.0.0 -> 2.0.0, дополнительный: 1.0.0 -> 1.1.0, патч: 1.0.0 -> 1.0 .1

Справочная статья:

  1. commit-message
  2. Сообщение фиксации и руководство по написанию журнала изменений