Eyes, JAPAN Blog > pecoでgitを快適にする

pecoでgitを快適にする

Masato Yamamoto

この記事は1年以上前に書かれたもので、内容が古い可能性がありますのでご注意ください。

アルバイトの山本です。

今回ではgitをpecoで快適に利用する話をしようと思います。 gitコマンドはエンジニアのみなさんが日々利用するコマンドだと思います。gitコマンドって結構タイプ数多いですよね。補完とかエイリアスを使って短縮している人も多いと思いますが、今回はpecoを使って快適にしたいと思います。

peco とは

すでにpecoと何度も出していますが、pecoを知らない人のために軽く紹介しておきます。リポジトリはこちらです。簡単に言うと入力を受けとったデータをインクリメンタルサーチして選択したデータを出力してくれるコマンドです。機能自体はシンプルなのですが、シンプルなだけに色んなところに組みこみやすくて活躍してくれます。例えばカレントディレクトリ以下のディレクトリにインクリメンタルサーチして移動するなら以下のようにすればできます。

 

$ cd $(ls -F | grep / | peco)

 

dockerで現在稼動しているコンテナを停止したいときにはこうするとインクリメンタルサーチで
絞りこめて便利です。


$ docker stop $(docker ps | peco | awk '{print $1}')

 

便利ですね。vagrantもpecoを利用すると便利になりますが、ここではリンクを紹介するだけにしておきます。
gongo/pecrant

pecoのインストール

便利なのは分かったところでpecoのインストールです。
MacはHomebrewでインストールできると思います。


$ brew install peco

 

GoがインストールされていてGOPATHも通している方は go get でインストールできます。


$ go get -v github.com/peco/peco

 

それ以外の方はここからバイナリをダウンロードしてきてパスを通しましょう。

git + peco の設定

gitをpecoで便利にすると言っても, いくらでも設定できてしまうのでここでは, リモートサーバーとブランチ名を

pecoで選択できるようにして便利になる例をあげたいと思います。


alias -g B='`git branch -a | peco --prompt "GIT BRANCH>" | head -n 1 | sed -e "s/^\*\s*//g"`'
alias -g R='`git remote | peco --prompt "GIT REMOTE>" | head -n 1`'

 

とりあえずこういう風にエイリアスを設定してみましょう。(zshの設定例です)

Bはブランチ名を、Rはリモートサーバー名をpecoで絞りこみます。

こうすると, git pushはこんな感じでできます。


$ git push R B

 

push 先は常にoriginだという方はこういう風にするとさらにタイプ数が減りそうです。


$ git push origin B

 

ブランチの切り替えもこういう感じでできます。


$ git checkout B

 

自分はこのコマンドを打つのも面倒なので git checkout B とかは Ctrl-xb にバインドしています。 git push はうっかり押してしまうと危険なので設定していません。
これは自分の例ですが, gitのエイリアスも設定すればもっと短かくできるのでオススメです。


alias g='git'
git config --global alias.a 'add'
git config --global alias.b 'checkout -b'
git config --global alias.c 'commit -v'
git config --global alias.p 'pull'
git config --global alias.pu 'push'

 

このエイリアスを設定すると


$ g pu R B

 

でpushできます。慣れると便利ですよ。

他にもpecoを利用した便利な例があれば是非教えてください。

Comments are closed.