【Git】typoを自動的に検出してコミットを防ぐ方法
「よし、完璧だ!」とコミットした後やPRで指摘されてtypoに気づき、fix: typo
コミットするのはできるだけ避けたいです。
レビューする側にとってもtypoに意識を向けながらレビューをするのは負担になります。貴重な時間はもっと大事な確認と指摘に使いたいものです。
今回は、そんなtypoを自動的に検出してコミットを防ぐ方法を紹介します。
“悲しいfix: typoコミット”
できるようになること
コミット時に変更ファイルのtypoを自動的に検出し、typoがあった場合はtypo箇所と修正のヒントを出力してコミットを防ぎます。typoがない場合はコミットは成功します。
設定方法
typoの検出
typoの検出にはRust製のtyposを採用しました。
macの場合のインストール手順を記載します。
# rustのインストール
brew install rust
# typosのインストール
cargo install typos-cli
# バージョンが出力されればOK
typos --version
※ GitHubからバイナリをダウンロードして利用する方法もあります。
コミット時に自動的にtypoを検出する
Git Hooksを利用することで実現しています。
利用したいリポジトリの.git/hooks/pre-commit
を編集してください。
#!/bin/sh
# 変更差分をチェックしたい場合
# git diff --cached --diff-filter=AM | typos -
# 変更ファイルをチェックしたい場合
git diff --cached --name-only --diff-filter=AM | xargs typos
# typoがある場合にコミットを防ぐ
if [[ $? -ne 0 ]]; then
exit 1
fi
.git/hooks/pre-commit
に実行権限がない場合は権限を付与してください。
# 実行権限の付与
chmod +x .git/hooks/pre-commit
動作方法
設定が終わったリポジトリでコミットすると自動的に動作します。
これでtypoを含んだコミットを自動的に防ぐことができ、fix: typo
コミットすることはなくなります。
最後に
この記事を読んで「面白かった」「学びがあった」と思っていただけた方、よろしければ Twitter や facebook、はてなブックマークにてコメントをお願いします!
また DeNA 公式 Twitter アカウント @DeNAxTech では、 Blog記事だけでなく色々な勉強会での登壇資料も発信してます。ぜひフォローして下さい!
Follow @DeNAxTech
Author And Source
この問題について(【Git】typoを自動的に検出してコミットを防ぐ方法), 我々は、より多くの情報をここで見つけました https://qiita.com/naro143/items/009af8897643fe990db8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .