bamboo’s blog

Bambooの気まぐれブログ

ghq+pecoでリポジトリ管理したら便利だった話

はじめに

 ある程度長い間プロジェクトを作ったり貢献したりしていると、ローカルリポジトリがごちゃごちゃしてくる。そんなとき、ふとインターネット記事で見つけたghq+pecoの組み合わせがかなり使いやすかったので、備忘録的な感じで残しておこうと思う。

インストール

 今回使用したのはUbuntu 20.04.3 LTS。ghqgo getでインストールできる。

go get github.com/x-motemen/ghq

pecoは素直にaptコマンドで。

sudo apt install peco

ghq

 ghqghq get <リポジトリURL>とするだけで、リポジトリghqのルートディレクトリにクローンしてくれる。GitHub以外のリポジトリでも可能。デフォルトはhttpsなので、sshプロトコルでクローンしたいときは-pを付ける。

ghq + peco

 ここからが本題。ghqではデフォルトだと~/ghq/github.com/user/repoのような形式でクローンされる。だがこれだとパスが冗長で毎回打つのが面倒だ。
 そこで登場するのがpeco。pecoとghqを組み合わせることで、各リポジトリへの移動が格段に楽になる。

 以下のようなエイリアス~/.bashrcにでも書いておく。エイリアス名はrepoにしてみた。

alias repo='cd $(ghq root)/$(ghq list | peco)'

repoと打つとghq getでクローンしたリポジトリが一覧表示され、目的のリポジトリに一発で移動することができる。

最後に

※今回の例ではエイリアス名をrepoにしましたが、どうやらAndroidのパッケージ管理ツールのコマンドと被るみたいなので、適宜変更してください。