Windows用のGitクライアント「Git for Windows」をインストールすると、エクスプローラーのメニューに「Git Bash Here」というメニューが追加されます。
っこれは文字通り指定のフォルダをカレントフォルダとして「Git Bash」(git用のbashプロンプト)を起動するメニューです。
便利に使っていたのですが、最近bashがコマンド履歴を覚えてくれないのが不満に思えてきました。前回何を実行したのか覚えておいてくれたら、gitリポジトリが変な状態になったとき、トラブルシューティングに役立つはず。
今回はこのGit Bash Hereコマンド履歴を記憶させる方法を紹介します。
PROMPT_COMMANDを使う
検索してみるとStack Overflowで答えを発見しました。~/.bash_profile(Windowsの場合c:\Users\ユーザー名\.bash_profile)に以下の文字列を追加するだけでよいようです(.bash_profileがなければ作ります)。
PROMPT_COMMAND='history -a'
そうするとGit Bash Hereでbashを起動しコマンドを実行するごとに履歴がファイルに保存されていきます。
historyコマンドで一覧できるほか、CTRL-Pで履歴を遡ることもできます。コマンド履歴はファイルとして保存されているので、たとえWindowsを再起動しても残っています。
PROMPT_COMMANDって何?
PROMPT_COMMANDはコマンド実行後に実行するコマンドを指定するシェル変数です。history -aは一個前のコマンドを履歴ファイル(.bash_history)に記録するコマンドなので…「PROMPT_COMMAND='history -a'」で、コマンドを実行するごとに.bash_historyにコマンド履歴が保存されることになるのです。
履歴ファイルはc:\Users\ユーザー名\.bash_historyに保存されます。
まとめ
普段zshを使っていて履歴があるのが当たり前な環境だったので、これでだいぶ楽になりました。履歴を使いこなして作業効率を高めていきたい方は設定してみてはいかがでしょうか。