:::DEPRECATED:::
- git-forgotは非推奨になったため、代わりにgit-remindを使ってください。
- git-remind: Gitの「コミット忘れ」と「プッシュ忘れ」を防ぐツール - Qiita
git add したが commit を忘れていた。コミット漏れがあって同僚に迷惑をかけた。複数のリポジトリを同時に触っていたら、片方のリポジトリをpushするのを忘れてしまった。gitを使ったことがあれば、このような失敗をしたことがあるのではないだろうか?
忘れることは人間である以上しかたない。であれば、思い出させてくれる何かがあればいい。例えば、通知センターでコミット漏れを教えてくれるだけでも十分だ。
そこで、今回作ったツールがgit-forgot。このツールは、git forgot
と打つとpushやcommitがされてないリポジトリを教えてくれるものだ。
この記事では、git-forgtについて紹介したい。
インストール方法
インストールはMacであればHomebrewでできる。
brew tap suin/suin
brew install git-forgot
LinuxやWindowsはダウンロードコーナーにバイナリを配布しているのでダウンロードしてほしい。
セットアップ
git-forgotでチェックしたいディレクトリを環境変数 GIT_FORGOT_DIR
に設定しておく必要がある。複数またはアスタリスクで指定できる。.gitがあるディレクトリのみチェックされるので、関係ないディレクトリが含まれていても構わない。
export GIT_FORGOT_DIR="$HOME/projects/* $HOME/github/*"
使い方
セットアップが完了したら、あとはコマンドを叩くだけでチェックできるようになる。コミット漏れやプッシュ忘れがあるリポジトリがあれば、そのパスが出る。問題なければ何も出ない。
$ git-forgot
なお、gitのサブコマンドとしても使える。
$ git forgot
リポーター(--reporter
, -r
)を指定すれば、通知センターに通知を送ることもできる。通知にはterminal-notifierが必要なので、インストールしておいて欲しい。
$ git forgot --reporter terminal-notifier
また、git forgot -r terminal-notifier -t iTerm
のようにコンソールを-t
で渡すと、通知センターの通知をクリックしたときに、該当プロジェクトを開けるようになる(m0aさん提供)。
crontabにしこんでおけば、定期的にコミット漏れなどをチェックし、通知センターで通知を受け取ることができる。
PATH=/usr/local/bin:/usr/bin:/bin
*/20 * * * * git-forgot -r terminal-notifier $HOME/projects/* $HOME/github/* > /dev/null 2>&1
pecoと組み合わせても便利。
alias gf='arr=(`git-forgot|peco`) && cd $arr[1]'
その他のオプションについては -h
でヘルプを見れる。
$ git forgot -h
おわりに
コミット忘れ・プッシュ忘れが無くなるといいなと思う。なお、git-forgotはGoで書かれたオープンソースなので、いじってみたい人はGitHubを見てほしい。