Gitでコミットメッセージ形式を強制するにはどうすればよいですか?
これをリポジトリレベルで設定して、ブランチを作成するすべての人がこの強制を受けることができますか?
Git ProBook " Gitのカスタマイズ-Git-Enforcedポリシーの例 "で説明されているように、このような施行はhook、より具体的には、update
のようなserver-sideフック:
サーバー側のすべての作業は、hooksディレクトリの
update
ファイルに送られます。update
フックは、プッシュされるブランチごとに1回実行され、次の3つの引数を取ります。
- プッシュ先の参照の名前
- そのブランチがあった古いリビジョン
- プッシュされている新しいリビジョン
これは、クライアント側のフック(pre-commit
のようなもの)よりも優先されます。
サーバー側のフックは、特定のリポジトリに対して、ポリシーが尊重されていない場合にgit Pushを拒否することで、必要なルールを適用します。
これは、ユーザーがプッシュしているリモートリポジトリホスティングサーバーを制御できることを前提としています。
そうでない場合は、クライアント側の事前コミットフックに戻ります。これは、gitテンプレートを介して設定できます そのテンプレートディレクトリはすべてのユーザー間で共有できます(git 2.9以降、2016年6月) 。
サーバー側のGitフックがソリューションですが、フック(および通常はサーバー)の設定と保守のオーバーヘッドもあります。
SaaSソリューション(サーバー側のGitフック用)を探している場合-これはまさに Datree *があなたのためにできることです。
*免責事項:私は@ Datreeの共同創設者兼製品リーダーですが、アクティブなオープンソースの貢献者としてこの苦痛に精通しています。この問題についてのブログ投稿も書きました--- Gitコミットメッセージを最大限に活用する方法