Gitのローカルリポジトリが増えてくるとどういう構成にすればいいか悩むところだけど、ghqとpecoがあれば考える必要がありません。今まで入れてなかった事を後悔するレベル。
##ghqインストール
Goがまだ入ってなければGoをインストール
% brew install go
お好みのシェルにパスを設定
.zshrc
export GOPATH=$HOME
export PATH=$PATH:$GOPATH/bin
書いたら読み込む(直で打つも良し)
% source ~/.zshrc
ghqインストール
% brew install ghq
ghqで管理するrootディレクトリを設定(~
が展開されないよう'
で括ってます)
% git config --global ghq.root '~/src'
##ghqをつかう
#cloneする
% ghq get git://github.com/project.git
#ghq管理下のリポジトリを表示
% ghq list
#ghq管理下のリポジトリにcd
% ghq look hoge
cd /Users/strsk/src/github.com/strsk/dotfiles
##pecoと連携
pecoインストール
% brew install peco
ghq list -p
で管理しているリポジトリのパスをpecoに渡してcd
するファンクションを^]
に登録します。keyはas you likeで。
.zshrc
function peco-src () {
local selected_dir=$(ghq list -p | peco --query "$LBUFFER")
if [ -n "$selected_dir" ]; then
BUFFER="cd ${selected_dir}"
zle accept-line
fi
zle clear-screen
}
zle -N peco-src
bindkey '^]' peco-src
書いたら読み込む!
% source ~/.zshrc
##Special Thanks
ghq: リモートリポジトリのローカルクローンをシンプルに管理する - 詩と創作・思索のひろば (Poetry, Writing and Contemplation)
ghqを使ったローカルリポジトリの統一的・効率的な管理について - delirious thoughts
ghq + peco/percol - Tatsuhiko Miyagawa's blog