Jujutsu (jj): jj undo / jj op restore で、どんな操作も元に戻せる
jj はリポジトリへの操作をすべて「操作ログ(oplog)」に記録するので、rebase の失敗も、うっかり消したブランチも、操作前の状態に戻せる。Git リポジトリとの共存(colocate)もできる。
手順
bash
jj git init --colocate # 既存の Git リポジトリで jj を使い始める
jj undo # 直前の操作を取り消す
jj op log # 操作の履歴を一覧
jj op restore <op-id> # 指定した操作の時点まで、リポジトリ全体を戻す- ファイルを保存した時点で作業コピーが自動でコミット扱いになるので、add 忘れ・stash の迷子が起きない。
- force push が必要になる変更は、push の時点で弾かれる。
注意点
- Git コマンドを直接使って壊したものも、jj が次に読み込んだ時点の状態から戻せることが多いが、jj 外の操作は記録されないので過信しない。
- チームの他メンバーは Git のままでよい(push 先は普通の Git リモート)。
出典
- @oukayuka · 2026-01-25
- 関連(jj の概念と乗り換えの損益分岐点の記事): @nwiizo · 2026-06-26