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を選択しておくことで、プレビュー機能やその他の高度な機能を後から追加できる余地が残される。