Worktree

Git worktree を使うと、複数のブランチをそれぞれ独立したディレクトリに同時にチェックアウトできます。ServerCC はアプリを離れることなく、worktree の作成・切り替え・マージ・削除を一括管理できます。

前提条件

Worktree を使用するには、次の 3 つの条件をすべて満たす必要があります:(1) サーバーに Git がインストールされていること、(2) ワークスペースが Git リポジトリであること、(3) リポジトリに少なくとも 1 つのコミットがあること。条件が満たされていない場合、Worktree 作成ボタンは無効化され、ヒントが表示されます。

Worktree 一覧

セッションピッカーの worktree セクションには、現在のワークスペースのすべてのアクティブな worktree が表示されます。各 worktree には以下の情報が表示されます:

  • ブランチ名 — この worktree に関連付けられた Git ブランチ
  • 作業ディレクトリの状態:
    • Clean — コミットされていない変更なし
    • Dirty — コミットされていない変更あり
  • マージ状態:
    • Ready to Merge — ベースブランチより先行するコミットがあり、マージ可能
    • Merge Conflict — マージの競合が検出されました(事前チェック)、手動での解決が必要
    • Merged — このブランチの作業は既にベースブランチに取り込まれています — squash や rebase でのマージも検出されます
  • コミット数 — ベースブランチに対する先行 (↑)・遅延 (↓) コミット数
  • 最新コミット — 最新コミットの件名

ステータスは一覧の読み込み時に計算されます。ターミナルでコミットやマージを行った後は、セクション下部の Worktree を更新をタップして再スキャンしてください。

Worktree の作成

セッションピッカーでWorktree を作成ボタンをタップします。

1

ブランチ名を入力

新しいブランチの名前を入力します(例:feature/loginfix/header-bug)。ServerCC が同名のブランチが既に存在しないか検証します。

2

ベースブランチを選択

worktree の作成元となるブランチを選択します。デフォルトは現在のブランチです。

3

作成

ServerCC が選択したベースブランチから新しいブランチで worktree を作成します。新しい worktree ディレクトリは ~/.servercc/worktrees/<workspace>/<branch>/ に配置されます。

Worktree での作業

リスト内の worktree をタップして開きます。worktree ディレクトリに移動し、そのブランチに限定された Claude Code/Codex セッションが開始されます。タイトルバーのワークスペース名にブランチが表示されます:ProjectName (feature-branch)

各 worktree は独立したセッションを持ちます。メインワークスペースや他の worktree とセッション履歴は共有されません。

ヒント

worktree セッションをバックグラウンドにして、別の worktree やメインワークスペースを同時に開くことができます。それぞれ独立したバックグラウンドインスタンスとして実行されます。

Worktree のマージ

ブランチでの作業が完了したら、ServerCC から直接メインブランチにマージできます。

1

worktree を右にスワイプしてマージボタンを表示します。マージ操作は、worktree のステータスが Ready to Merge(先行コミットがあり、競合なし)の場合のみ使用可能です。

2

ServerCC がブランチを現在のブランチにマージします。常にマージコミットが作成され、明確な履歴が保持されます。

3

マージが成功すると、worktree ディレクトリとブランチは自動的に削除されます(クリーンアップ)。

警告

マージの競合が発生した場合、マージは自動的に中止され、クリーンな状態に復元されます。Worktree は保持されます。ターミナルで手動で競合を解決してから再試行するか、Merge Conflict ステータスを参考にマージ前に競合を修正してください。

Worktree の削除

worktree を左にスワイプして削除ボタンを表示します。worktree ディレクトリと関連する Git ブランチが削除されます。ブランチを完全に破棄したい場合に使用します。

注意

バックグラウンドインスタンスが実行中の worktree には実行中バッジが表示され、インスタンスを停止するまで開くことができません。先に実行中タブからインスタンスを停止してください。

Worktree の保存場所

Worktree はサーバー上の以下の場所に保存されます:

~/.servercc/worktrees/<workspace-name>/<branch-name>/

各 worktree は標準的な Git worktree です。ターミナルやデスクトップから git worktree コマンドで操作することもできます。