MATLAB での Git フックの使用
この例では、MATLAB® で Git™ フックを使用してコミット ワークフローを標準化する方法を示します。Git フックは、コミット、マージ、コミットのプッシュなどの操作によってトリガーできるカスタム スクリプトです。
Windows® システムにおいて MATLAB で Git フックを使用するには、コマンド ライン版の Git のインストール時に、.sh ファイルを Bash で実行できるようにしてください。詳細については、その他の設定を参照してください。
例を開いて、サポート ファイルをダウンロードします。このリポジトリには 3 つのサンプル フックが含まれています。.git/hooks フォルダーに、commit-msg、pre-commit、および prepare-commit-msg フックが含まれています。これらのサンプル フックの内容を調べて編集するか、テンプレートとして使用して独自のフックを作成します。.git フォルダーが表示されない場合は、隠しファイルおよびフォルダーを表示するように設定を調整します。詳細については、現在のフォルダーの設定を参照してください。

コミット メッセージのカスタマイズ
prepare-commit-msg フックを使用して既定のコミット メッセージを変更し、ブランチ名や問題追跡 ID などの情報を含むようにカスタマイズします。この例では、prepare-commit-msg はコミット メッセージにプロジェクト名 -PROJ123- を追加します。
[ファイル] パネルで右クリックし、[ソース管理]、[コミット] を選択します。[変更をコミット] ダイアログ ボックスで、既定のコミット メッセージの最後に -PROJ123- が含まれます。
あるいは、[ソース管理]
パネルで [コミット] をクリックします。[ソース管理] アイコンがサイドバーにない場合は、[パネルをさらに開く] ボタン
をクリックし、[ソース管理] パネルを選択します。


コミット前のファイルの検査
pre-commit フックを使用して、コミットしようとしているファイルを検査します。コードの品質、書式の問題、およびタイプミスをチェックするように pre-commit をカスタマイズできます。フックで指定したチェックが失敗した場合、pre-commit はコミットをキャンセルします。この例では、pre-commit は変更済みファイル内にテキスト「TODO」がないかチェックします。
この例では、saveUnsavedMFiles.m ファイルには「TODO」コメントが含まれています。変更をコミットしようとすると、コミット操作によって、pre-commit フックで指定したエラーがスローされます。

saveUnsavedMFiles.m ファイルを開き、すべての「TODO」を削除します。その後、再度コミットします。
最終コミット メッセージの検証
commit-msg フックを使用して、最終コミット メッセージを検査および検証します。commit-msg は、最終コミット メッセージが適用されているガイドラインに準拠していない場合、コミットをキャンセルします。この例の commit-msg では、すべてのコミット メッセージが、コミットのタイプを指定する「fix:」、「feat:」、「doc:」、または「test:」で始まる必要があります。
コミット メッセージの先頭にコミット タイプを含めずにコミットしようとすると、コミット操作によって、commit-msg フックで指定したエラーがスローされます。[変更をコミット] ダイアログ ボックスでコミット メッセージ「Add saveUnsavedFiles utility」を入力し、[コミット] をクリックします。

あるいはcommit関数を使用してプログラムで変更をコミットすることもできます。
localrepo = gitrepo(path/to/repo/folder) commit(localrepo, Message="Add saveUnsavedFiles utility"); Error using matlab.git.GitRepository/commit>i_doCommit The 'commit-msg' hook aborted the operation. Caused by: ERROR: Commit message does not start with 'fix:', 'feat:', 'doc:', or 'test:'
Git フックを使用して、マージやプッシュのワークフローなど、他のワークフローを改善するには、.git/hooks フォルダーにフックを追加します。R2024a 以降の MATLAB Git 統合では、pre-commit、commit-msg、post-commit、prepare-commit-msg、pre-push、pre-merge-commit、post-checkout、および post-merge の各フックがサポートされています。