Gitでcommitするファイルを自動でフォーマットする
コピペ用
echo "
#\!/bin/sh
cargo fmt
for FILE in \`git diff --staged --name-only\`; do
git add \$FILE
done
" > pre-commit && \
chmod 755 pre-commit && \
mv pre-commit .git/hooks/pre-commit
備忘録です
Git フックを使っています
例として、Rustで書かれたソースコードをフォーマットしていますが、他の言語でも同じようにできます
方法
ファイルpre-commit
を作成する
pre-commit
#!/bin/sh
cargo fmt
for FILE in `git diff --staged --name-only`; do
git add $FILE
done
実行権限を付与する
chmod 755 pre-commit
ファイルを.git/hooks/pre-commit
にmv
する
mv pre-commit .git/hooks/pre-commit
これで毎回コミット直前にpre-commit
がシェルスクリプトとして実行されるようになるので、cargo fmt
を行いフォーマットしたあと、すでにステージング済みのファイルの内、変更があったファイルを再びadd
してくれます
そしてその後にコミットが行われます