良い変更ログの書き方---研究の共有

1.背景
今日のソフトウェア開発は、多くの場合、複数の人が参加する必要がある共同プロジェクトです。プロジェクトが順調に進んでいる場合、後続の開発者は、新しい機能を追加したりバグを修正したりするために、コードを送信する必要があります。プロジェクトの開発と反復が進むにつれて、内容は変化し続けます。プロジェクトの変更を徐々に忘れてしまいます。このとき、プロジェクトは、全員を同じペースで調整するために、変更ログを維持する必要があります。
2.現状
現在、多くの企業開発プロジェクトは適切な仕様に準拠していません。さまざまな開発者がプロ​​ジェクトの一部を開発した後にコードを送信し、多くの場合、独自のスタイルに従って独自のコミットメッセージを定義します。送信はよりカジュアルです。次の写真は理解しにくいです。コードにバグがある場合、どのバージョンにロールバックするかが明確ではありません。
図1図2
これに関連して、関連組織はコミットメッセージをマークして送信する計画を提案しています。その中で、Keep a Change Log [1]とAngularJS [2]はどちらも独自の仕様を使用しています。AngularJS仕様は、現在最も広く使用されている書き込み方法であるGoogleが立ち上げたメッセージ仕様送信標準のセットです。したがって、この共有はAngularJSメッセージ送信仕様に焦点を当てています。AngularJS送信仕様を使用した後のコミットメッセージを次の図に示します。
画像3
3.目標

a. 在浏览的时候可以提供更好的历史信息	

たとえば、次のコマンドを使用すると、前回のリリース以降の変更を表示できます。各コミットの開始を確認して、コミットの目的を
確認してください。gitlog HEAD --pretty = format:%s
ここに画像の説明を挿入

b. 允许通过命令过滤掉某些提交信息

git log HEAD --grep feat ----新しく追加された機能を表示します:
ここに画像の説明を挿入
git log HEAD --grep fix ----修正されたバグを表示します:
ここに画像の説明を挿入

c.允许通过脚本自动生成日志

ここに画像の説明を挿入

4.コミットメッセージの形式

<type>(<scope>): <subject>     ---Header部分
<BLANK LINE>                 ---空一行
<body>
<BLANK LINE>                 ---空一行
<footer>

<タイプ>(必須):

•feat:新機能の追加
•修正:バグの修正
•ドキュメント:ドキュメントの変更のみ
•スタイル:コードロジックを変更せずに、スペースやフォーマットのインデントなどのみを変更
•リファクタリング:コードの再構築、新機能なしまたはバグの修正
•テスト:テストケースを追加し
ます•雑用:ビルドプロセスを変更するか、依存するライブラリやツールなどを追加します。
•元に戻す:前のバージョンにロールバックします

<スコープ>(オプション):

変更されたプロジェクトのスコープは自分で指定できます(適切なスコープが使用されていない場合は*を使用してください)。

<件名>(必須):

提出物の内容を強調する短いタイトル。英語は現在形であり、最初の文字は大文字ではなく、末尾は句読点ではありません。

<body>(オプション)

特定の変更内容を英語で一般的に現在形で説明します。

  • 変更されたコンテンツ1
  • 変更されたコンテンツ2
  • 変更されたコンテンツ3

<フッター>(オプション)

2つの状況に適用可能:
a。互換性のない変更

現在のコードが以前のバージョンと互換性がない場合、フッター部分はBREAKING CHANGEで始まり、変更の説明、変更の理由、および移行方法が続きます。

BREAKING CHANGE: isolate scope bindings definition has changed.

To migrate the code follow the example below:

Before:

scope: {
    
    
  myAttr: 'attribute',
}

After:

scope: {
    
    
  myAttr: '@',
}

The removed `inject` wasn't generaly useful for directives so there should be no code using it.

b。問題を閉じる

といった:

クローズ#123

または:

#123、#234、#345を閉じます

<
空白行>空白行


注:
1。読み取り時の
改行を回避するために、各行は通常100文字を超えません。2。元に戻す:現在のコミットを使用して前のコミットを取り消す場合は、元に戻す必要があります。 :、取り消されたコミットのヘッダーが続きます。

revert: feat(pencil): add 'graphiteWidth' option

This reverts commit 667ecc1654a317a13331b17617d973392f415f02.
Body部分的格式是固定的,必须写成This reverts commit <hash>.,其中的hash是被撤销 commit 的 SHA 标识符。

5.ツール
5.1Commitizen(https://github.com/commitizen/cz-cli)を使用します
。Macコンピューターは最初にnpmをインストールする必要があります。

$ brew install npm
$ npm install -g commitizen
$ commitizen init cz-conventional-changelog --save-dev --save-exact

gitcommitの代わりにgitczを使用する
ここに画像の説明を挿入
ここに画像の説明を挿入

5.2 validate-commit-msg(https://github.com/conventional-changelog-archived-repos/validate-commit-msg)

検証フォーマットツール、インストールコマンド

$ npm install --save-dev validate-commit-msg

検証ルールは、ファイルを編集することで構成できます
ここに画像の説明を挿入

5.3従来型の変更ログ(https://github.com/conventional-changelog/conventional-changelog)
コマンドの実行

$ npm install-gconventional-changelog-cli

$ cd my-project

$従来型-変更ログ-p角度-iCHANGELOG.md -s -r 0

自动生成日志

ここに画像の説明を挿入

5.4IDEAプラグインGitコミットテンプレート
ここに画像の説明を挿入
ここに画像の説明を挿入
6.まとめ:
ここに画像の説明を挿入

[1] https://keepachangelog.com/
[2] https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit#heading=h.uyo6cb12dt6w

おすすめ

転載: blog.csdn.net/nikyae/article/details/111415672