JujutsuのGit co-location(Git共存モード)
public.icon
概要
Git co-locationは、ローカルではJujutsuで作業し、GitHubへはGitとして連携する機能。「ハイブリッド運用」を可能にする。
仕組み
.gitと.jjの両方のディレクトリが存在
jjコマンドを実行するたびに自動的にGitとインポート/エクスポートされる
ローカルではjjで快適に作業し、GitHubへは通常通りプッシュできる
セットアップ手順
既存のGitリポジトリをJujutsu化
code:bash
# 既存のGitプロジェクトのディレクトリで実行
cd your-git-project
jj git init --colocate
GitHubからクローンする場合
code:bash
後から有効化/無効化(2025年の新機能)
code:bash
jj git colocation enable # 有効化
jj git colocation disable # 無効化
jj git colocation status # 現在の状態確認
ワークフロー例
code:bash
# 1. GitHubから最新を取得
jj git fetch
# 2. 新しい作業を開始
jj new main
jj describe -m "Add new feature"
# 3. ファイルを編集
vim src/main.rs
# 4. 状態確認
jj status
jj diff
# 5. GitHubにプッシュ
jj git push --branch my-feature
重要な注意点
1. 自動同期: jjコマンドを実行するたびにGitと自動同期される
2. gitコマンドも使える: 必要に応じてgitコマンドも併用可能(ただし、読み取り専用の使用を推奨)
3. ブランチが多い場合: リポジトリに大量のブランチがあると、jjコマンドが遅くなる可能性あり
jj util gcで最適化可能
4. GitHub側は通常通り: GitHub上では通常のGitリポジトリとして扱われる メリット
ローカルではjjの快適な操作性を享受
チームメンバーはGitのまま作業可能
CI/CDなどのツールはGitリポジトリとして認識
IDEのGit統合機能もそのまま使える
ユースケース
この方法で、個人的にJujutsuを使いながら、チーム全体はGitで作業するというハイブリッド運用が可能になる。