IT女子 アラ美お疲れ様です!IT業界で働くアライグマです!
「rebase中に競合して頭が真っ白になった」「stashがどこに消えたかわからない」「履歴を綺麗に整えるのに時間を溶かしている」。Gitを使い込むほど、こうした履歴操作の面倒くささに悩まされた経験があるのではないでしょうか。Jujutsu(jj)は、Googleのエンジニアが開発している次世代バージョン管理ツールで、既存のGitリポジトリをそのまま使いながら、履歴操作を根本的にシンプルにしてくれる注目のプロダクトです。本記事では、Jujutsuの基礎から実践的な導入パターンまでを、Gitとの比較を交えながら解説します。
Jujutsuとは何か:Gitの後継として注目される理由



Jujutsu(jj)は、Googleのエンジニアが個人プロジェクトとして開発を始め、現在ではGoogle社内でもパイロット利用が始まっている新世代のバージョン管理システムです。最大の特徴は、既存のGitリポジトリをそのまま使える互換性を保ちながら、履歴操作のモデルを根本から作り直している点にあります。
Gitと比べてJujutsuが解決しようとしている課題は次のようなものです。
- 複雑なrebaseやcherry-pickの体験を簡素化:jj独自の「change」概念により、コミットハッシュが変わっても同じ変更を追跡できる
- stashが不要:作業中の変更は常にコミットとして保持されるため、切り替えのたびにstash/popをする必要がない
- 競合解決の非破壊性:競合したまま履歴を保存でき、解決を後回しにできる
- 操作ログが取り消しやすい:
jj op undoで任意の操作を1コマンドで巻き戻せる
生成AIとの協調開発が当たり前になった2026年、Claude CodeなどのAIエージェントによるコード自動化が進むほど、「AIが生成した大量のコミットを人間が整理し直す」というワークフローの重要性が増しています。Jujutsuの履歴操作のしやすさは、まさにこの時代の要請に応える設計です。だからこそAI時代に急激に評価され始めているわけです。



Jujutsu導入前に整理しておきたい前提条件と環境
本記事で扱うJujutsuのバージョンは v0.20 系(2026年4月現在の最新安定版)を想定しています。Jujutsuはまだ開発が活発で、メジャーバージョンの変更時にコマンド名や挙動が変わることがあるため、インストール後は必ず jj --version で実際のバージョンを確認してください。
動作前提は次の通りです。
- 対応OS:macOS / Linux / Windows(WSL2推奨)すべてで動作確認あり
- 必要なツール:Rust製バイナリのため追加ランタイムは不要。Gitは併用時のみ必要
- リポジトリの種類:既存のGitリポジトリにそのまま導入可能。
jj init --git-repo .で既存リポジトリをJujutsuで扱えるようにする - GitHub/GitLab連携:pushやfetchは内部的にGitを経由するため、既存のリモート設定がそのまま使える
重要な注意点として、Jujutsuは作業ツリーの変更を常にコミットとして扱うため、Gitのような「未ステージ」「ステージ済み」「コミット済み」の3状態は存在しません。これがJujutsu最大の設計哲学であり、最初に慣れるべきポイントです。Gitの感覚で「git add してない」と思っていたファイルが、Jujutsuでは既にワーキングコピーコミットの一部になっています。
また、機密情報の取り扱いにも注意が必要です。作業中の変更が常にコミット化されるということは、うっかり開いたAPIキーファイルも即座に履歴に入ります。導入前に個人開発のAPI認証事故から学ぶセキュリティ事例のような失敗パターンを押さえ、.gitignore(Jujutsuでもそのまま有効)を最初に整備しておきましょう。



jj op undoで数秒前の状態に戻せるので、消えて困ることはまずありません。ステップ1:Jujutsuのインストールと基本コマンド
ここではJujutsuのインストール手順と、日常で最も使う基本コマンドを紹介します。既存のGitリポジトリをそのまま使えるので、Gitを捨てずに両者を共存させながら段階的に慣れていくのがおすすめです。
インストール手順(macOS / Linux / Windows WSL2)
macOSはHomebrew、Linuxはcargo(Rustパッケージマネージャ)、Windowsはscoopまたはcargoが推奨です。
# macOS (Homebrew)
brew install jj
# Linux / WSL2 (cargoを使う場合)
cargo install --locked --bin jj jj-cli
# バージョン確認
jj --version
# 出力例: jj 0.20.0
インストール後、初回のみユーザー名とメールアドレスを設定しておきます。これはGitと同様、履歴に残るコミット情報に使われます。
jj config set --user user.name "Your Name"
jj config set --user user.email "you@example.com"
既存Gitリポジトリへの導入と基本操作
既存のGitリポジトリがある場合、jj init --git-repo . を実行するだけでJujutsu管理下に入ります。Git側の履歴は一切変更されないため、チームメンバーは通常通りGitで作業を続けられます。
# 既存のGitリポジトリに移動して
cd your-project
# Jujutsu管理を開始(Git履歴はそのまま)
jj init --git-repo .
# 現在の状態確認(git statusに相当)
jj status
# 変更内容の差分(git diffに相当)
jj diff
# 新しいコミット(change)を作成して作業を進める
jj new -m "feat: add user profile endpoint"
# リモートのmainブランチから変更を取得
jj git fetch
Jujutsuの最大の体験的な違いは、commitが自動で行われることです。ファイルを編集した瞬間、その変更は「ワーキングコピーコミット」として既に記録されています。jj new -m "..."は「今の作業を確定して次の新しいコミットを始める」という意味で、Gitのgit commitに近いですが、ステージングの概念がない分シンプルです。
CI/CDでJujutsuを使う場合、GitHub Actionsの肥大化を防ぐCI/CD設計パターンで紹介されているようなワークフロー分割の考え方がそのまま応用できます。GitHub Actions側はgit pushで受けるため、Jujutsu使用者はローカルだけで恩恵を受けられる構成にしやすいのがメリットです。



jj status 打ったら、「え、もうコミットになってる?」って二度見した。ステップ2:複数ブランチを同時に扱う発展的な運用パターン
Jujutsuの真価が発揮されるのは、複数の作業を並行して進めるケースです。Gitなら git stash や git worktree、さらには git rebase -i を駆使する必要があった場面で、Jujutsuは1〜2コマンドでスムーズに切り替えられます。
並行作業の切り替えと履歴の再編
たとえば「機能Aの実装中に、緊急のバグ修正Bが発生した」というシチュエーションを考えます。Gitでは未コミットの変更をstashしてブランチを切り替え、修正後にstashを戻すという手順が必要ですが、Jujutsuでは次のように進めます。
# 現在の作業(機能A)はそのまま保持される
# バグ修正用に新しいchangeを作成して切り替え
jj new main -m "fix: critical bug in auth middleware"
# バグ修正を実施してコミット確定
jj new -m "wip: investigating login edge case"
# 機能Aの作業に戻りたい場合は change ID で直接切り替え
jj edit
Jujutsuでは、stashという概念が不要です。すべての変更は常にコミットとして保持されているため、切り替えの際に情報を失う心配がありません。change IDはコミットハッシュとは別に管理されており、履歴を書き換えても同じchangeを追跡できる独自の識別子です。
競合解決とrebaseの取り消し
Jujutsuの競合解決も独特で、競合したまま履歴を保持できるのが特徴です。つまり、rebase中に競合が発生しても途中で中断せず、すべてのコミットを一度終わらせてから、後でまとめて解決することもできます。
# ブランチ上のコミットをmainの最新に追従させる
jj rebase -d main
# もし競合が発生していても処理は続行される
# 各コミットが「conflicted」状態で保持される
# 競合の一覧を確認
jj log
# 特定のchangeを手動で解決
jj resolve
# 不安なら全操作を巻き戻し
jj op undo
jj op undo はJujutsuの最大の安心材料です。どんな操作でも1コマンドで直前に戻せるため、「間違えたらどうしよう」という心理的ハードルが極端に低くなります。Gitでgit reflogとgit resetを組み合わせて泣きながら復旧していた経験がある人ほど、このありがたみがわかるはずです。
複数のAIエージェントが協調して開発する時代には、「どのエージェントがどのコミットを生んだか」「誰のコミットを取り込むか」を人間が整理し直す場面が増えます。peers-mcpで複数のClaude Codeを協調動作させるガイドのようなマルチエージェント運用を本気でやるなら、Jujutsuの柔軟な履歴再編機能は必須レベルの価値があります。



jj op undoだけで一生お釣りが来るんだけど。ケーススタディ:チーム導入でレビュー差し戻し時間を半減させた事例



組織のツール選定権限を持つ社内SEを目指すなら特化型エージェントに相談しなさい
社内SEを目指す方必見!IT・Webエンジニアの転職なら【社内SE転職ナビ】
渡部さん(仮名・33歳・バックエンドエンジニア・経験9年)が所属する受託開発チーム(6名)でJujutsuを段階的に導入し、レビュー差し戻し時の手戻り時間を半減させた事例を紹介します。
状況(Before)
渡部さんのチームでは、PRレビューで指摘を受けた後の修正作業に毎回時間を取られていました。特に次のような課題が発生していました。
- インタラクティブrebaseの失敗率が高い:複数コミットをまとめ直す際にコンフリクトが起き、平均30分を溶かしていた
- stashからの復帰ミス:ブランチ切り替えで作業が消えたと勘違いして
reflogを漁る場面が月に数回発生 - レビュー対応の精神的負荷:「歴史を書き換える」作業への心理的ハードルが高く、指摘されても後回しにしがちだった
- AI生成コミットの整理コスト:Claude Codeなどで生成される細かいコミットをきれいに整形するのに、1PR あたり15分以上の追加作業が必要だった
行動(Action)
渡部さんは「チーム全員のGit移行」ではなく、自分1人だけJujutsuに切り替え、リモートへのpushはGit経由で行う段階的な導入を選びました。チームメンバーから見ると、渡部さんのPRは通常のGitリポジトリの変更として届くため、全員が一斉に移行する必要はありません。
具体的には次の手順を踏みました。
- 既存リポジトリで
jj init --git-repo .を実行し、Git履歴はそのまま保持 - ローカル作業をすべてJujutsuで行い、
jj git pushでGitリモートに反映 - レビュー指摘時は
jj rebaseとjj squashで履歴整形。失敗したらjj op undoで即巻き戻し - 導入から2週間は「週末の個人作業のみ」でJujutsuを試し、平日業務に持ち込むのはコマンドに慣れてから
結果(After)
導入から1ヶ月後、渡部さんのレビュー対応時間には明確な改善が見られました。
- rebase関連の作業時間:平均30分 → 平均12分(60%削減)
- 「履歴を壊す恐怖」による後回し:月5〜6回発生 → ほぼゼロに
- AI生成コミットの整理時間:1PRあたり15分 → 5分(1/3に短縮)
- reflogを漁る頻度:月3〜4回 → ゼロ回(
jj op logで全操作が辿れるため)
渡部さんは振り返ります。「チーム全員を一斉に切り替えなくても個人レベルで恩恵を受けられたのが一番の勝ちポイントでした。半年経った今、チームメンバーの1人も自発的にJujutsuを使い始めています」。AIコーディング時代の開発スキルを武器にキャリアを前進させたい方は、ハイクラスエンジニア転職エージェント3社比較ガイドも参考にしてみてください。モダン開発環境への対応力は、高単価求人の評価項目として年々重視されています。



Jujutsuをチームに広げるための運用設計
個人レベルでJujutsuに慣れたら、次はチーム展開の設計を考えます。重要なのは「全員を一気に切り替える」のではなく、既存Gitワークフローと共存させながら段階的に広げることです。Jujutsuは既存Gitリポジトリと100%互換性があるため、この戦略が現実的に機能します。
チーム展開の3ステップ
- 情報共有フェーズ:1〜2名が先行導入し、社内LTやドキュメントで「jj op undo」「stash不要」などの実感価値を共有する。理論よりも具体的な体験談が刺さる
- 任意導入フェーズ:希望者のみが個別にインストールし、push/pullはGit経由で続ける。チームの共通ルールは変えない
- 標準化フェーズ:全員がJujutsuに慣れた段階で、README・オンボーディング資料にセットアップ手順を追加する。共通の設定ファイル(
.jj/config)もリポジトリで共有
このアプローチの利点は、失敗してもGitに戻るだけで済むことです。Jujutsuのコマンドに慣れない人がGitを使い続けても、リモートの履歴は壊れません。これが「Gitと互換性がある」ことの最大のメリットです。
導入前にチームで合意しておきたいルール
Jujutsuの「すべての変更をコミット化する」設計は強力ですが、チームで使うときには事前の合意が必要です。AIコードレビューの前提合意とチーム導入ガイドで解説している「導入前の前提合意」という考え方は、Jujutsu導入にもそのまま当てはまります。特に次の3点は事前にすり合わせておきましょう。
- 履歴再編のルール:mainブランチ上のコミットは原則書き換えない、feature ブランチなら自由に整形可能、といった境界を明文化する
- change IDの扱い:PRレビュー時に言及する識別子はコミットハッシュかchange IDか、どちらを正にするかを決める
- コミットメッセージ規約:Jujutsuでもconventional commitsは有効。
jj describe時のテンプレートを統一する
こうしたルール整備は、AI時代の開発ワークフロー全体の見直しと同時に進めるのが効率的です。単にJujutsuを導入するのではなく「チームの開発体験を1段階上げる」という観点で議論を始めると、経営層の合意も得やすくなります。



よくある質問
Q. Jujutsuを入れるとGitは使えなくなりますか?
いいえ、GitとJujutsuは同じリポジトリで共存できます。Jujutsu管理下のリポジトリにgit statusを打てば通常通りGitとして動作しますし、リモートへのpush/fetchは内部でGitを呼び出しています。チームメンバーに「自分はJujutsuを使っている」と告げる必要もありません。
Q. Windows環境でも使えますか?
はい、使えます。PowerShell上でもネイティブに動きますが、WSL2(Ubuntu等)経由の方が互換性が高く推奨です。cargoインストール(cargo install --locked --bin jj jj-cli)がもっとも安定する方法です。
Q. Jujutsuを入れた後、既存のGitエイリアスはどうなりますか?
Git側のエイリアスはそのまま使えます。Jujutsuはjjコマンドで独立しているため干渉しません。ただし日常的にgit commitとjj newを混在させると混乱するので、運用ルールとしてJujutsu使用時はGitコマンドを最小限にするのがおすすめです。
Q. AIコーディングエージェントとの相性はどうですか?
非常に良好です。Claude CodeやCursorが生成する細かいコミット群をjj squashで統合したり、jj rebase -d mainで最新mainに追従させたりする作業が、Gitに比べて圧倒的にスムーズに行えます。AIが作った履歴を人間が整理するワークフローは今後主流になるため、Jujutsuの強みはさらに増していくはずです。
さらなる年収アップやキャリアアップを目指すなら、ハイクラス向けの求人に特化した以下のサービスがおすすめです。
| 比較項目 | TechGo | レバテックダイレクト | ビズリーチ |
|---|---|---|---|
| 年収レンジ | 800万〜1,500万円ハイクラス特化 | 600万〜1,000万円IT専門スカウト | 700万〜2,000万円全業界・管理職含む |
| 技術スタック | モダン環境中心 | Web系に強い | 企業によりバラバラ |
| リモート率 | フルリモート前提多数 | 条件検索可能 | 原則出社も多い |
| おすすめ度 | 技術で稼ぐならここ | A受身で探すなら | Bマネジメント層向け |
| 公式サイト | 無料登録する | - | - |



まとめ
Jujutsuは、既存のGitリポジトリをそのまま活かしながら、履歴操作のしんどさを根本から解消してくれる次世代バージョン管理ツールです。AI時代に評価が急上昇しているのは、生成AIが作る大量のコミット群を人間が整理し直すワークフローとの相性が極めて良いからです。
- 既存Gitリポジトリと完全共存:
jj init --git-repo .だけで始められ、失敗してもGitに戻るだけ - stash不要・競合も保持可能:作業の切り替えで何かを失う不安がゼロになる
- op undoで全操作が取り消し可能:
git reflogとの格闘から解放される - 個人導入から段階的にチーム展開:一斉切り替えのリスクなしで恩恵を受けられる
まずは個人リポジトリや週末プロジェクトでjj initを試し、jj newとjj op undoの2コマンドだけ使ってみてください。「取り返しがつかないかも」という不安がなくなる感覚を一度体験すると、Gitの世界には戻れなくなります。AIコーディングがさらに加速する2026年後半に向けて、今のうちに手に馴染ませておく価値のあるツールです。
厳しめIT女子 アラ美による解説ショート動画はこちら











