uga.dev - A Front-end Engineer's shed

現在のテーマは「ライトモード」です。

git-cdローカルリポジトリを横断移動するCLIツール

git cd コマンドでローカルリポジトリを検索し、簡単に作業ディレクトリへ移動できるようになるCLI拡張ツールです。複数プロジェクト間の切り替えを高速化します。

📁 Here’s how it works - zsh
$ pwd
/Users/admin
$ git cd
$ pwd
/Users/admin/repos/github.com/hiroya-uga/git-cd

git cd コマンドでコンピューター内のローカルリポジトリを検索し、選択したリポジトリのディレクトリに移動できます。複数プロジェクトを横断する開発者のための CLI 拡張です。

* View in English

なぜ git cd が必要か

Getting Started

複数のリポジトリを管理していると、cd コマンドでの移動はフルパスを覚えて入力する必要があり、tab 補完も深いネストや似た名前のリポジトリでは思い通りに機能しません。

git cd はローカルにあるすべてのリポジトリを自動で検索し、目的のリポジトリへ即座に移動できます。fzf がインストール済みであればインクリメンタルサーチが使え、未インストールでも番号選択で動作します。

従来の方法との比較

方法フルパス不要追加設定不要git統合あいまい検索
cd + tab 補完非対応対応非対応非対応
find + cd対応対応非対応非対応
fzf + find対応非対応非対応対応
git cd(本ツール)対応対応対応一部対応

こんな方におすすめ

  • 複数のリポジトリを日常的に横断して開発している
  • 複数の独立したリポジトリを管理している(モノレポの場合は --nested オプションで内部のリポジトリも検索対象にできる)
  • ターミナル中心の開発スタイルで、プロジェクト切り替えを効率化したい

Getting Started

git clone版と、クイックインストール版があります。

git clone版(推奨)
git clone https://github.com/hiroya-uga/git-cd.git ~/.git-cd
~/.git-cd/install.sh
クイックインストール版
curl -fsSL https://github.com/hiroya-uga/git-cd/releases/latest/download/install.sh | bash

インストーラーが実行する内容

  1. ~/.local/bin/git-cd にコマンドを配置(クローン版はシンボリックリンク、クイックインストール版は直接ダウンロード)
  2. ~/.local/bin を PATH に追加(未登録の場合のみ)
  3. ~/.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

𝕏拍手する