ghqでリポジトリ管理とpeco連携で快適git生活

  • 168
    Like
  • 0
    Comment
More than 1 year has passed since last update.

Gitのローカルリポジトリが増えてくるとどういう構成にすればいいか悩むところだけど、ghqとpecoがあれば考える必要がありません。今まで入れてなかった事を後悔するレベル。

ghqインストール

Goがまだ入ってなければGoをインストール

% brew install go

お好みのシェルにパスを設定

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

書いたら読み込む!(直で打つも良し)

% source ~/.zshrc

ghqインストール

% go get github.com/motemen/ghq
または
% brew tap motemen/ghq
% brew install ghq

ghqで管理するrootディレクトリを設定

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

.gitconfigを直接編集してもOK。↑でやると~が絶対パスになるのが嫌だったので直接編集しました。

[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インストール

% go get github.com/peco/peco/cmd/peco
または
% brew tap peco/peco
% brew install peco

ghq list -pで管理しているリポジトリのパスをpecoに渡してcdするファンクションを^]に登録します。keyはas you likeで。

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

あとはターミナルで^]を打てば快適生活のはじまりです。
ghq_peco.png

Special Thanks

ghq: リモートリポジトリのローカルクローンをシンプルに管理する - 詩と創作・思索のひろば (Poetry, Writing and Contemplation)
ghqを使ったローカルリポジトリの統一的・効率的な管理について - delirious thoughts
ghq + peco/percol - Tatsuhiko Miyagawa's blog