アプリケーション開発には、コードの品質を常に保つためにもテストの実行やコードレビューを検証したりといったことを日頃から実践していかなければなりません。

その際に毎回タスクを手動で実行させるのは、長い目でみると結構面倒だったりします。

できれば、システムが勝手にテストなどを実行してくれれば、開発者は何も考えなくてもよくなるので楽ですね。

今回は、Gitコマンド実行時に指定の処理を実行できるようにするやり方を説明していこうかと思います。

※Gitがインストールされている環境が前提となります。

実行させたい処理の登録

まずは、処理の登録方法について説明します。

Gitの管理対象のルートディレクトリには「.git」フォルダが存在するかと思いますが、「.git/hooks」ディレクトリの中にGitのフック処理を実現するためのスクリプトがいくつか格納されています。

この中にある「pre-commit.sample」というファイルが、Gitのコミット操作時に起動するスクリプトとなります。

スクリプトを利用する場合は、ファイルの内容を編集してファイルの拡張子(.sample)を削除します。

今回は、Gitのコミット操作時にコマンドラインに文字列を出力させてみたいと思います。

ファイル名を「pre-commit」としたファイルを作成し、以下のように記述をします。

#!/bin/sh

echo 'hello world'

実行してみる

では、実際にコミットを実行して先ほど記述した処理が実行されるか試してみましょう。

$ git commit -m 'test commit'

すると、コミットが実行される前に先ほど記述した処理が実行され、コマンドラインに以下のような出力がされているかと思います。

hello world

例えば、先ほど記述した処理を行う代わりにRuboCopというコードレビューを行うGemを実行させる場合は「pre-commit」スクリプトに以下のような記述をします。

rubocop -a

これで、コミット時に自動でコードレビューが実行されるようになりました。

まとめ

Gitコマンド実行時に指定の処理を行うには、まとめると以下のような流れとなっています。

  1. 「.git/hooks/…」ディレクトリに格納されているスクリプトに実行させたい処理を書く
  2. Gitコマンドを叩くと記述した処理が走る

最初の導入までは一手間掛かってしまいますが、後々楽になることが多いです。

今回のような例だと割と簡単にできるので試してみると良いかと思います。

投稿者: TWEI

趣味はプログラミング。 以前は仕事でプログラミングをやっていました。現在はWebエンジニアを目指して勉強中。 勉強で得た知識などをブログで発信していく予定です。

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA