| Crates.io | git-gardener |
| lib.rs | git-gardener |
| version | 0.1.1 |
| created_at | 2025-10-16 00:19:47.510993+00 |
| updated_at | 2025-10-16 00:19:47.510993+00 |
| description | A Git worktree management tool |
| homepage | |
| repository | https://github.com/mei28/git-gardener |
| max_upload_size | |
| id | 1885156 |
| size | 173,412 |
シンプルなGit worktree管理ツール
git-gardenerは、Git worktreeの管理を簡単にするRust製のCLIツールです。wtpにインスパイアされ、直感的で使いやすいインターフェースを提供します。
init コマンドでプロジェクトをすぐに開始.gardener/branch-name 形式で自動的にworktreeを配置git-gardener cd @ でメインworktreeに瞬時に移動.gardener/を自動で除外設定# Cargoから(予定)
cargo install git-gardener
# ソースからビルド
git clone https://github.com/username/git-gardener
cd git-gardener
cargo build --release
# プロジェクトを初期化(最初に実行)
git-gardener init
# 新しいブランチでworktreeを作成
git-gardener add feature/new-feature -b
# 既存ブランチからworktreeを作成
git-gardener add existing-branch
# worktree一覧を表示
git-gardener list
# worktreeに移動(パスを出力)
git-gardener cd feature/new-feature
# メインworktreeに移動
git-gardener cd @
# worktreeを削除
git-gardener remove feature/new-feature
# ブランチも一緒に削除
git-gardener remove feature/new-feature --with-branch
# シェル補完を生成
git-gardener completion bash > ~/.bash_completion.d/git-gardener
プロジェクトでgit-gardenerを使い始める前に、初期化が必要です:
git-gardener init
このコマンドは以下を実行します:
.gardener/ ディレクトリを作成.gitignore に .gardener/ エントリを追加.gardener.yml 設定ファイルを生成既に初期化済みの場合、--force フラグで再初期化できます:
git-gardener init --force
.gardener.yml ファイルでカスタム設定やフックを定義できます。
version: "1.0"
defaults:
base_dir: ".gardener"
hooks:
post_create:
- type: copy
from: ".env.example"
to: ".env"
- type: command
command: "npm install"
env:
NODE_ENV: "development"
ファイルやディレクトリをworktreeに自動コピー
worktree作成後に任意のコマンドを実行
環境変数も利用可能:
${WORKTREE_PATH}: 作成されたworktreeのパス${BRANCH}: ブランチ名${REPO_ROOT}: リポジトリのルートパスjustを使用してタスクを実行:
# 利用可能なタスクを表示
just
# ビルド
just build
# テスト実行
just test
# フォーマット + リント + テスト
just check
# 特定のテストを実行
just test-module "commands::add"
# デモ実行(機能確認)
just demo-init # init コマンドのヘルプ
just demo-add # テスト用worktreeを作成
just demo-list # worktree一覧表示
just demo-clean # テスト用データを削除
このプロジェクトはt-wada流TDDで開発されています:
# 🔴 Red: 失敗するテストを書く
just test-red "test_new_feature"
# 🟢 Green: テストを通す最小実装
just test-green "test_new_feature"
# 🔵 Refactor: リファクタリング
just test-refactor
git-gardener/
├── src/
│ ├── commands/ # コマンド実装
│ │ ├── init.rs # プロジェクト初期化
│ │ ├── add.rs # worktree作成
│ │ ├── list.rs # worktree一覧
│ │ ├── cd.rs # worktree移動
│ │ ├── remove.rs # worktree削除
│ │ └── completion.rs # シェル補完
│ ├── config.rs # YAML設定ファイル処理
│ ├── git/ # Git操作
│ │ └── worktree.rs
│ ├── hooks.rs # フック機能
│ └── error.rs # エラー型定義
├── .gardener/ # worktreeディレクトリ(initで作成)
├── .gardener.yml # 設定ファイル(initで作成)
├── justfile # タスクランナー
└── README.md
git-gardener add feature/new-feature -b)just check)MIT License