git hook
#git
gitのコミット時などに、bashを走らせる機構
Git-のカスタマイズ-Git-フック
.git/hooks/配下にpre-commitなどの名前でシェルを置いておくと、コミットなどを行なった際に自動的にバッチ処理をしてくれる。
基本的にはコミット前チェックみたいな立ち位置っぽい
コミット時にphpのlint(?)を通す
ただし、ファイルの格納場所はユーザ個人(.git/hooks/はコミットされたりしない)なので、複数メンバで開発する場合は環境を揃える必要がある
git templeteを使った環境配信 https://qiita.com/noraworld/items/c562de68a627ae792c6c
上の記事では、プロジェクト共通で使うテンプレートをローカルに置いてるが、git_templeteをプロジェクトフォルダに入れてコミットすれば、配布出来る。
git hookで走らせるbash内では、いくつかのgitコマンドが動かなくなる。
ワークスペースを絶対パスで指定する
code:sh
#!/bin/bash
WORK_DIR=$(cd $(dirname $0)/../../; pwd)
git --work-tree=$WORK_DIR add $WORK_DIR/js/hoge.js
git --work-tree=$WORK_DIR commit -m 'auto build'
exit 0
フックを起動せずにコミットやプッシュをする
git push --no-verify フックを起動せずにpushする
post-receiveを使ったpull後の自動デプロイ
https://rfs.jp/server/git/gite-lab/git-hook-post-receive.html