Управление ветками git и спецификация сообщений git commit

спецификация кода

управление филиалом

manage-flow

как показано на рисунке: Ветка master используется только для хранения онлайн-версий. Аварийная онлайн-ошибка, используйте ветку исправления Небольшие тестовые ошибки, разработанные в ветке dev, также могут быть изменены в ветке dev. Экстренные онлайн-исправления ошибок также должны быть объединены в ветку разработки. Разрабатывайте сложные новые функции с новыми ветвямиdev-${devName}

Спецификация сообщения Git Commit

Использование формата сообщения фиксации Angular.

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

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

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

Revert

Если коммит используется для отзыва предыдущего коммита, он должен начинаться с revert:, а затем писать заголовок отозванного коммита. Чтобы написать в теле: this reverts commit . , hash — это хеш-значение отозванного коммита. Этот формат также может бытьgit revertКоманда генерируется автоматически.

Type

Должен быть одним из следующих:

  • подвиг: новая функция (особенность)
  • исправить: исправить ошибки
  • docs: модификация документации
  • стиль: Модификации, не влияющие на смысл кода (например, пробелы, форматирование и т. д.)
  • рефакторинг: рефакторинг (то есть не новая функция и не изменение кода, исправляющее ошибку)
  • Perf: модификация для повышения производительности
  • тест: добавить или изменить тесты
  • рутинная работа: изменение процесса сборки или вспомогательных инструментов

Scope

Область действия используется для описания области изменения фиксации, такой как уровень данных, уровень управления, уровень представления, маршрут, компонент, утилиты, сборка и т. д. Если модификация затрагивает несколько мест, используйте «*».

Subject

Тема представляет собой краткое описание модификации:

  • Используйте повелительное наклонение, простое настоящее время.
  • первая буква строчная
  • Не используйте конец периода предложения

Body

Используйте повелительное наклонение, простое настоящее время. Кроме того, в теле нужно указать причину модификации и отличие от предыдущей версии.

Footer

Любая информация о критических изменениях или закрытии вопросов может быть записана в нижнем колонтитуле. Критические изменения нужно начинать сBREAKING CHANGE:начало.

Ниже приведены мои 2 записи представления:

commit 9fb447d73c637cfa128b57a84d95dc72bb14412b (HEAD -> master)
Author: zhongjx <amy_zhjx@163.com>
Date:   Wed Dec 26 18:22:53 2018 +0800

    refactor(*): 使用prettier格式化代码
    
    使用eslint+prettier取代之前的eslint+airbnb规范

commit a4a5e9259d5dd4f5f4d3d16fea3392df2a877ee1 (origin/master)
Author: zhongjx <amy_zhjx@163.com>
Date:   Tue Nov 20 09:49:27 2018 +0800

    chore: 添加commit msg格式要求

Другие примеры можно посмотретьangular.js фиксирует

Настроить и использовать в webpack

Установить

npm i --save-dev @commitlint/cli @commitlint/config-conventional husky

husky может предотвратить коммиты git, которые не соответствуют требованиям, git push или другие команды не могут быть выполнены. Настроив следующим образом:

{
    "husky": {
      "hooks": {
        "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
      }
  },
}

Каждый раз, когда он отправляется, он проверяет, соответствует ли указанный метод сообщения фиксации.

standard version

Стандартная версия — это пакет npm, который автоматически генерирует версии и CHANGELOG.md.

Установить

Установите зависимости:

npm i --save-dev standard-version

Добавьте скрипт запуска в Package.json:

{
  "scripts": {
    "release": "standard-version"
  }
}

воплощать в жизньnpm run releaseCHANGELOG.md будет сгенерирован автоматически, создайте запись фиксации и пометьте новый выпуск.

Первый выпуск

просто беги

npm run release -- --first-release
// 或者
standard-version --first-release

Это создает тег выпуска, но не изменяет версию в package.json.

Выпущен предварительный релиз

Используйте --prerelease для создания пререлиза: Предположим, что текущая версия — 1.0.0, а код, который нужно зафиксировать, — это пропатченная модификация. бегать:

npm run release -- --prerelease

сгенерирует номер версии 1.0.1-0. Если вы хотите указать имя предварительной версии, вы можете передать--rerelease <name>. Например:

npm run release -- --prerelease alpha

Этот тег будет 1.0.1-alpha.0

Опубликовать указанный тип

Используйте --release-as плюс параметр major или minor или patch, чтобы отменить автоматическую генерацию номера версии. Предполагая, что текущая версия 1.0.0.

//  npm run script
npm run release -- --release-as minor
//  Or
npm run release -- --release-as 1.1.0

будет генерировать номер версии 1.1.0 вместо автоматически сгенерированного номера версии 1.0.1