Upgrade to Pro — share decks privately, control downloads, hide ads and more …

並列で⽣成AIにコーディングをやらせる

 並列で⽣成AIにコーディングをやらせる

2025年7月4日に開催された第125回NearMe技術勉強会で発表した資料です。

本資料では、git worktree を活用して複数のブランチで並行作業を行う方法から、Google製の Gemini CLI を使ってAIにコーディングを指示する具体的な手法までを解説しています。

さらに、container-use というツールを導入することで、AIエージェント自身に git worktree を作成させ、隔離された環境で安全かつ並列に開発タスクを自動実行させる未来のワークフローを提案します。

こんな方におすすめ

複数の機能開発や急な割り込みタスクに追われている方
AIを活用したコーディングに興味がある方
開発プロセスをさらに効率化したいと考えている方

キーワード
Git, git worktree, AI, 生成AI, Gemini, Gemini CLI, container-use, Dagger, 並列開発, 自動化

More Decks by NearMeの技術発表資料です

Other Decks in Programming

Transcript

  1. 1 ⽬次 • git worktree とは? • 概要 • Pros

    / Cons • git worktree コマンドで並列に作業する⽅法 • Gemini CLI について • Gemini CLIとは • 特徴 • Gemini CLI を⽤いた開発 ◦ CLI上での⾃然⾔語による指⽰ ◦ shell コマンドの実⾏ ◦ @を⽤いたファイルのコンテキストへの追加 • 作業完了後の worktree のお掃除 • worktree の削除⼿順 • AIエージェントによる⾃動化 • container-use とは? ◦ AIごとに隔離部屋を⾃動⽣成 • container-use の利⽤⼿順
  2. 3 git worktree とは • 概要 ◦ ⼀つのGitリポジトリに対して複数のワーキングディレクトリを作成 → 複数のブランチを同時にチェックアウトして作業できる🙌

    ◦ 同じ .git を共有する my-project/ ├── .git/ └── src/ <-- mainブランチの作業用 my-project-feature-A/ ├── .git <-- ↑の.gitへのリンク └── src/ <-- feature-Aブランチの作業 用 my-project-hotfix/ ├── .git <-- ↑の.gitへのリンク └── src/ <-- hotfixブランチの作業用
  3. 4 git worktree とは • 概要 ◦ ⼀つのGitリポジトリに対して複数のワーキングディレクトリを作成 → 複数のブランチを同時にチェックアウトして作業できる🙌

    ◦ 同じ .git を共有する my-project/ ├── .git/ └── src/ <-- mainブランチの作業用 my-project-feature-A/ ├── .git <-- ↑の.gitへのリンク └── src/ <-- feature-Aブランチの作業 用 my-project-hotfix/ ├── .git <-- ↑の.gitへのリンク └── src/ <-- hotfixブランチの作業用 これはフォルダ ではなくファイル
  4. 5 git worktree の Pros / Cons • Pros 1.

    ブランチ切り替えのストレスがゼロになる • 割り込み作業に強い 2. 時間のかかる処理を待たなくて済む • ビルドや依存関係の再インストールが不要 3. 並行作業が捗る • 複数機能の同時開発 • コードレビューが楽に
  5. 6 git worktree の Pros / Cons • Cons 1.

    ディスク容量を消費する • 作業ディレクトリを物理的に増やすため、その分のディスクスペースが必要になる ※ git clone をし直すよりは効率的(.git は共有するので) 2. 同じブランチは1つのworktreeでしか開けない • .git を共有しているので、 ”feature-A” のようなブランチは1つのworktreeでのみ 開くことができる 3. 管理が少し煩雑になる • たくさん worktree を作成するとかえって複雑になるので、こまめに worktree は 削除する必要がある
  6. 8 git worktree コマンドで 1 つの git プロジェクトを並列に作業する 1. 適当な場所に

    git プロジェクトを作成する $ git init 2. git プロジェクトの監視外にて worktree を作成する(今回は1つ上に作成) $ git worktree add -b feature-A ../my-project-feature-A ※ もしすでにブランチを作成している場合には以下のようにも作成できます! $ git worktree add ../my-project-feature-A feature-A
  7. 9 git worktree コマンドで 1 つの git プロジェクトを並列に作業する 1. 適当な場所に

    git プロジェクトを作成する $ git init 2. git プロジェクトの監視外にて worktree を作成する(今回は1つ上に作成) $ git worktree add -b feature-A ../my-project-feature-A ※ もしすでにブランチを作成している場合には以下のようにも作成できます! $ git worktree add ../my-project-feature-A feature-A → あとはそれぞれの場所で作業するだけ 🙌
  8. 11 Gemini CLI とは → Googleが開発したオープンソースのコマンドラインインターフェース(CLI)ツール • 特徴 (1/2) ◦

    対話型インターフェース ◦ ローカルファイルとの連携 ▪ @ 記号を用いてカレントディレクトリにあるファイルなどをAIのコンテキストに含めるこ とができる 「@main.py のコードをリファクタリングして」 ◦ シェルコマンドの実行 ▪ !記号を使って AI にシェルコマンドの実行を指示できる 「!ls -l の結果を説明して」 ◦ マルチモーダル
  9. 12 Gemini CLI とは → Googleが開発したオープンソースのコマンドラインインターフェース(CLI)ツール • 特徴 (2/2) ◦

    Web検索機能 ◦ オープンソース ▪ Apache 2.0ライセンスで公開されている ◦ 豊富な無料利⽤枠 ▪ 個⼈利⽤であれば、1⽇1,000リクエストまで無料で利⽤でき、気軽に試すこと ができる
  10. 13 Gemini CLI を⽤いて開発する 1. Gemini CLI を npm を⽤いてグローバルにインストールする

    $ npm install -g @google/gemini-cli 2. gemini コマンドを⽤いて認証 → 利⽤開始! $ gemini 3. あとは先ほど作成した worktree を⽤いて並列で開発!!
  11. 15 Gemini CLI を⽤いて開発する 4. CLI 上で⾃然⾔語で AI に作ってほしいものや修正してほしいものを書く →

    「shift + tab」をすることで、ファイル編集などを⾃動で accept にできる ※ rm コマンドや git コマンドなどはこのモードにしても途中で受け⼊れるかどうか   聞かれる
  12. 19 worktree のお掃除 1. Gitの管理情報を削除(メインのプロジェクトディレクトリから実⾏) $ git worktree remove ../my-project-feature-A

    2. 不要になったブランチを削除 $ git branch -d feature-A 3. (⼀応)不要な worktree を削除する $ git worktree prune
  13. 25 container-use を使ってみる 1. container-use をローカルにインストール $ brew install dagger/tap/container-use

    2. .gemini ディレクトリを対象プロジェクト部分に作成する $ mkdir -p .gemini
  14. 26 container-use を使ってみる 3. .gemini 以下に settings.json ファイルを作成する   $ touch

    .gemini/settings.json 4. settings.json に以下のように記述をする { "mcpServers": { "container-use": { "command": "cu", "args": [ "stdio" ], "env": {}, "timeout": 60000 } } }