MENU

ghqで高速リポジトリ移動を実現する最小設定

ghqを使ってGitリポジトリを管理している際、複数のリポジトリ間を素早く移動したい場面は日常的に発生する。複雑な設定や多機能なツールの組み合わせではなく、最小限の設定で最大の効果を得る方法を紹介する。

目次

前提環境

  • ghqがインストールされていること
  • fzfがインストールされていること
  • Bash または Zsh を使用していること

fzfのインストールは以下のコマンドで実行できる:

# macOS (Homebrew)
brew install fzf

# Ubuntu/Debian
sudo apt install fzf

# CentOS/RHEL
sudo yum install fzf

最小構成での設定方法

シェルの設定ファイル(.bashrc または .zshrc)に以下の1行を追加するだけで、高速なリポジトリ移動が可能になる:

alias g='cd $(ghq root)/$(ghq list | fzf)'

この設定により、g コマンドを実行するとfzfの絞り込み画面が表示され、リポジトリ名を入力して絞り込み、Enterキーで該当するリポジトリのディレクトリに移動できる。

設定後は以下のコマンドで設定を反映させる:

source ~/.zshrc  # Zshの場合
source ~/.bashrc  # Bashの場合

実際の使用例

例えば、以下のようなリポジトリ構成があるとする:

~/ghq/github.com/
├── user/my-blog
├── user/api-server
├── user/frontend-app
└── company/internal-tool

g コマンドを実行すると、fzfの絞り込み画面が表示される。ここで「blog」と入力すると user/my-blog が絞り込まれ、Enterキーを押すことで即座に該当ディレクトリに移動する。部分一致での検索が可能なため、「front」と入力すれば user/frontend-app にマッチする。

このような直感的な操作により、従来の cd コマンドで長いパスを入力する必要がなくなり、開発効率が大幅に向上する。

他の選択肢との比較

リポジトリ移動を効率化する方法として、pecoを使用する選択肢もある。pecoは日本で人気のあるツールで、基本的な絞り込み機能を提供する。しかし、現在ではfzfの方が機能的に優れており、より活発に開発されている状況である。

fzfとpecoの主な違いは、fzfがプレビュー機能や複数選択機能を標準で備えている点にある。また、GitHubでのスター数を見ると、fzfが60,000以上のスターを獲得している一方で、pecoは7,000程度となっており、コミュニティの規模と活発度に大きな差がある。

将来的な拡張性を考慮した場合、fzfを選択しておくことで、プレビュー機能やその他の高度な機能を後から追加できる余地が残される。

目次