yyp٩( 'ω' )و

色々触って遊んでます

pecoでらくらくgit checkout

まえがき

gitでブランチ切り替えをするとき、いちいちブランチ名を入力しないといけないのが手間だな〜と日頃から思っていたのですが、pecoでブランチ名を選択するようにできるらしいので、やってみます。

環境

  • OS: macOS Mojave
  • OS version: 10.14.6
  • docker version: 19.03.1

pecoとは

pecoは、コマンドの実行結果を変数に入れて別のコマンドを実行するときに選択肢として表示できるようにするツールです(正確な説明ではないかもしれないです)。
ssh先を手元で管理するときとかによく使われている印象です。

github.com

pecoインストール

今回はmacなのでbrewでインストールします。

% brew install peco  
% peco --version  
peco version v0.5.3 (built with go1.10.3)

最新版がインストールされたみたいです。

pecoを使っていく

pecoの基本的な使い方は、「選択肢として表示させたいコマンドをパイプで渡す」です。
今回はgitのブランチのリストを選択肢として表示させたいので、

% git branch -a | peco  

となります。
実行すると、こんな感じでブランチが表示され、カーソルキー上下で選ぶことができます。
(*がついているブランチがカレントブランチです)

QUERY>                                                                                                                                                        IgnoreCase [4 (1/1)]
  develop
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

git checkoutするには下記のように実行します。

% git checkout $(git branch -a | peco)  

より便利に使うために、pecoまで含んだワンライナーをalias化してbashrcやzshrcに追記します。
今回はgcでブランチを選択肢として表示させてcheckoutできるようにします。

alias gc='git checkout $(git branch -a | peco)'  

sourceで読み込んで、gcでブランチ切り替えができれば成功です。

まとめ

いつもブランチ名を都度確認して、チェックアウトして…とやっていたので、これでだいぶ手間が減りそうです。
ただ、ブランチがあまりにも多いと探すのも時間がかかりそうですね…
表示させてさらに検索とか絞り込みができればもっと便利に使えそうです。