Gitでcommitするファイルを自動でフォーマットする


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-commitmvする

mv pre-commit .git/hooks/pre-commit

これで毎回コミット直前にpre-commitがシェルスクリプトとして実行されるようになるので、cargo fmtを行いフォーマットしたあと、すでにステージング済みのファイルの内、変更があったファイルを再びaddしてくれます

そしてその後にコミットが行われます