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してくれます
そしてその後にコミットが行われます