このプロジェクトは非推奨です。https://github.com/suin/git-remind を代わりに使ってください。
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