git-cdローカルリポジトリを横断移動するCLIツール
git cd コマンドでローカルリポジトリを検索し、簡単に作業ディレクトリへ移動できるようになるCLI拡張ツールです。複数プロジェクト間の切り替えを高速化します。
$ pwd
/Users/admin
$ git cd
$ pwd
/Users/admin/repos/github.com/hiroya-uga/git-cdgit cd コマンドでコンピューター内のローカルリポジトリを検索し、選択したリポジトリのディレクトリに移動できます。複数プロジェクトを横断する開発者のための CLI 拡張です。
なぜ git cd が必要か
複数のリポジトリを管理していると、cd コマンドでの移動はフルパスを覚えて入力する必要があり、tab 補完も深いネストや似た名前のリポジトリでは思い通りに機能しません。
git cd はローカルにあるすべてのリポジトリを自動で検索し、目的のリポジトリへ即座に移動できます。fzf がインストール済みであればインクリメンタルサーチが使え、未インストールでも番号選択で動作します。
従来の方法との比較
| 方法 | 特徴 |
|---|---|
| cd + tab 補完 | リポジトリのフルパスを覚えていないと使いにくい |
| find + cd | コマンドが長く、都度入力するのが煩雑 |
| fzf + find | カスタム設定が必要で、git との統合がない |
| git cd(本ツール) | git サブコマンドとして統合済み、追加設定不要ですぐに使えます |
こんな方におすすめ
- 複数のリポジトリを日常的に横断して開発している
- 複数の独立したリポジトリを管理している(モノレポの場合は --nested オプションで内部のリポジトリも検索対象にできる)
- ターミナル中心の開発スタイルで、プロジェクト切り替えを効率化したい
Getting Started
git clone版と、クイックインストール版があります。
git clone https://github.com/hiroya-uga/git-cd.git ~/.git-cd
~/.git-cd/install.shcurl -fsSL https://github.com/hiroya-uga/git-cd/releases/latest/download/install.sh | bashインストーラーが実行する内容
~/.local/bin/git-cdにコマンドを配置(クローン版はシンボリックリンク、クイックインストール版は直接ダウンロード)~/.local/binをPATHに追加(未登録の場合のみ)~/.zshrc(または~/.bashrc)にシェル関数を追記
※インストール後は、必ずターミナルを再起動してください。
使い方
git cd # ホームディレクトリ配下のリポジトリを検索
git cd ~/projects # 指定したディレクトリを起点に検索※fzf(ファジーファインダーCLI)がインストール済みの場合はキーワードで絞り込みながら選択でき、未インストールの場合は番号付きリストから選択します。
設定
デフォルトの検索起点を git の設定で指定できます。
引数でパスを渡した場合はその値が優先されます。
git config --global git-cd.root ~/worksオプション
| コマンド | 機能説明 |
|---|---|
--depth <n> | ディレクトリの探索深度を制限する(デフォルト: 5) |
--nested | ネストしたリポジトリも一覧に含める(デフォルトでは除外) |
--cache | 前回のキャッシュをそのまま使用して高速起動する |
-h, --help | ヘルプを表示 |
git cd ~/projects --depth 3