darudaru

だるだるしてるエンジニア

ghqとpecoでGitのリポジトリ管理をシンプルに

今まで1つのディレクトリの中にいろんなGitのリポジトリをcloneしていたのですが、リポジトリの名称が被って単純に1つのディレクトリで管理できなくなったため、Gitのリポジトリ管理の構成を見直すことにしました。

見直した結果使うことにしたツール

ghqとpecoを使います。

ghqとは

リモートリポジトリをローカルで管理するためのツール github.com

pecoとは

インタラクティブにフィルタリングを行うことができるツール github.com

ghqとpecoをインストールする

ghq

Goが入っていない場合は、まずGoのインストールを行います。

% brew install go

.zprofileに環境パスを追加します。

export GOPATH=$HOME
export PATH=$PATH:$GOPATH/bin

goを入れたらghqをインストールします。

% brew install ghq

ghqで管理するrootディレクトリを.gitconfigに設定します。私は~/gitにしました。

% git config --global ghq.root ~/git 

peco

pecoのインストールはコマンド1つ叩くだけ。

% brew install peco

設定を行う

.zshrcにエイリアスを設定します。

alias g='cd $(ghq list -p | peco)'

完了

コマンドラインでgと打つと、リポジトリ一覧とリポジトリをフィルタリングできるようになります。リポジトリを選択すると、そのリポジトリがあるディレクトリへ移動もできます。 f:id:skanoemon:20170326165713p:plain

ちなみに、ghqだけだと私が困っていたリポジトリの名称が被っていたときの問題は解決しませんでした。エラーが起きた。
名称がかぶった困った問題も解決したのと、各リポジトリへの移動が楽になってよかった。