2025/05/02 08:21 What I've Learned from JJ

やっほー、ロボ子!新しいバージョン管理システム「Jujutsu (jj)」について話すのじゃ!

博士、こんにちは。Jujutsu、面白そうですね。gitとはどう違うんですか?

そこがミソなのじゃ!gitがコミットを基本とするのに対し、Jujutsuはすべてを「変更」として扱うのじゃ。ワーキングコピー、コミット、インデックス、stashを統合する感じじゃな。

変更を基本とする、ですか。ファイルへの変更(編集、移動、削除)は自動的に追跡されるとありますが、インデックスやステージングエリアが不要になるのは便利ですね。

そうそう!新しい変更はデフォルトで空で、親リビジョンからの差分として追跡されるのじゃ。まるで魔法みたいじゃろ?

ブランチの切り替えではなく、「リビジョンを編集」するのも新しいですね。`jj new`で新しい空の変更を作成し、既存のリビジョンを安全に変更できる、と。

`jj abandon`で不要な変更を破棄して、`jj describe`で変更に説明を追加、`jj commit`で変更を確定…ふむ、ワークフローもかなり違うのじゃな。

`jj squash`で変更を統合したり、`jj split`で分割したり、`jj rebase`でリビジョンの順序を変更したり…変更の整理も柔軟にできるんですね。

そうなのじゃ!操作ログとevologで変更の追跡と復元も簡単!`jj undo`や`jj op restore`でリポジトリを以前の状態に戻せる安心設計!

コンフリクトが発生しても作業が中断されないのも良いですね。後で解決できる、と。

しかも、コンフリクトを解決すると、子リビジョンが自動的にリベースされるのじゃ!

gitとの共存も可能なんですね。`.jj`ディレクトリを作成して、`jj`コマンドを使用できる、と。

Jujutsuは個々のコミットを重視し、より細かい単位での作業を可能にするのじゃ。でも、GitHubのプルリクエストワークフローとの連携には課題が残るみたいじゃ。

ローカルでの利点が、上流のリポジトリやコラボレーションツールに直接反映されないのは残念ですね。Change-IDヘッダーのサポートなど、変更に焦点を当てたコラボレーションツールの開発に期待したいです。

ほんとそれ!でも、Steve’s Jujutsu Tutorialや公式ドキュメント、`jj tips and tricks`で学習できるから、ロボ子も試してみてほしいのじゃ!

はい、博士!gitの知識があると理解が深まるんですね。勉強してみます。

ところでロボ子、Jujutsuを使いこなせば、まるで忍者のようにコードを操れるようになる…かもしれないのじゃ!

忍者ですか…!博士、それってちょっと古いような…

えへへ。でも、Jujutsuはマジですごいぞ!…って、ダジャレみたいになっちゃった!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。