世界を動かす技術を、日本語で。

みんなのための柔術

概要

  • Jujutsu バージョン管理システムの初心者向けチュートリアル紹介
  • Git 経験不要、端末操作が必要
  • レベル構成 による段階的学習
  • 進捗リセット用の スクリプト 提供
  • チュートリアルの 継続的な更新 とフィードバック募集

Jujutsuバージョン管理システム入門

  • Jujutsu は、初心者でも扱いやすい バージョン管理システム
  • Git や他のVCS経験がなくても問題なし
  • 端末(ターミナル)での操作が前提
    • LinuxMac 推奨、Windowsは WSL 利用を推奨
  • チュートリアル内で必要な コマンド を順次解説

チュートリアルの読み方と進め方

  • チュートリアルは レベル(章) ごとに構成
  • 各レベル修了後は 実践 を推奨
  • 協力作業が目的の場合は レベル1と2 を続けて学習
  • レベルごとの概要
    • 1: 個人作業の最小限知識
    • 2: コラボレーションの最小限知識
    • 3: 基本的な問題解決(例:コンフリクト解消)
    • 4: 履歴の書き換え技術
    • 5: 生産性向上・高度なワークフロー
    • 6: 特定状況で必要な追加トピック(タグ、サブモジュール等)

進捗リセット方法

  • チュートリアル進行中に リポジトリ状態 が崩れる場合あり
    • 例:練習・実験、PC変更、OS再インストール、意図的な削除、チュートリアル更新
  • リセットスクリプト で任意の章から再開可能
  • 各章の冒頭に リセットコマンド が記載
  • スクリプトは 安全性確認 可能、内容は単純なコマンド集

チュートリアルの更新とサポート

  • チュートリアルと Jujutsu本体 は進化中
  • 最新情報は GitHubリポジトリ の「Watch」→「Custom」→「Releases」で購読
  • Jujutsu 0.32 (2025年8月時点)に対応
  • フィードバック歓迎
    • typo修正 は「編集」アイコンから
    • 改善提案 や体験談はIssueで受付

バージョン管理とは何か、なぜ使うのか

  • バージョン管理 はソフトウェア開発だけでなく、ドキュメント作成等にも活用可能
  • 変更履歴の 追跡・管理、チームでの 協力作業、過去状態への 復元 が容易
  • Jujutsu を使うことで、これらの機能を直感的に体験可能

このチュートリアルは、 Jujutsu によるバージョン管理の基礎から応用までを、初心者にも分かりやすく段階的に学べる構成。進捗リセットや最新情報へのアクセス方法も整備されており、安心して学習を進められる設計。

Hackerたちの意見

JujutsuはGitよりもパワフルだよ。学ぶのが簡単で直感的なのに、実際にはパワーユーザー向けの素晴らしい機能がたくさんあって、Gitを完全に置き去りにしてる。具体的には? これは説明されてないから、なんで使いたいのか気になるけど、ただの空虚な言葉に感じるな。試してみる理由があんまりないよね。

同意するよ。既存のGit UIがかなりひどいと思うから、ある程度は彼らに期待をかけてもいいかな。でも、もう少し具体的な情報が欲しいな。特に、これが他の選択肢よりも簡単でパワフルで便利な理由を示してほしい。

一例として:マージコンフリクトは適切なエントリーとして提出できて、後で対処できるよ。: https://jj-vcs.github.io/jj/latest/conflicts/

こんにちは、著者です。ターゲットオーディエンスはGitの経験がほとんどない人たちなので、詳細な比較は意味がないと思います。GitのUIの奇妙さは、そのパワフルさで正当化されることが多いから、そういう主張をしただけです。だから、この発言は、簡単に学べるツールを選んでもパワーを逃してるわけじゃないって、読者の心を軽くするためのものです。

例えば、Mainから始めて、いつかPRになる予定の新しいブランチを作るとするよ。コミット1を作って、次にもう1つ、さらに6つくらい作ったとする。そこで、コミット1の何かが違ってたことに気づく。だから、コミット1を「編集」する。そうすると、他のコミットは自動的にその上にリベースされて、最後のコミットに戻るとちゃんとある。PRの後でも、誰かがコミット3で何かに気づいたら、編集してプッシュすれば修正できる。これらはGitでもできるけど、私はそんなことしたことないし、同僚たちは小さなコミットに分けられたPRを本当に評価してるよ。1つずつ簡単に見直せるからね。

最近Jujutsuについての投稿をいくつか見たけど、特定のワークフローには深入りしてないんだ。Emacs MagitよりJujutsuを使う具体的なメリットってあるの? 他のGit UIはあんまり使えなかったけど、MagitのおかげでGitの生産性がかなり上がったし、「Gitの魔法」を実感させられた。Jujutsuはこの体験と競争するつもりなの? それともEmacs以外の(正直、ひどい)Gitユーザー体験の代替として考えられてるの?

Jujutsuは本当にGitのUIではなくて、ある意味ではその役割があまり得意じゃない(タグやサブモジュールの作成をサポートしてないなど)。これは全く新しいVCSで、Gitとの互換性があるだけなんだ。GitがSVNに対して安価なブランチをもたらしたように、JJは安価なリベースを提供してる。コンフリクトはもはや世界を止めるような操作ではなくて、リベースやコミットの整理、管理がこれまでとは全く違う方法でできるようになった。スタックされた差分のツールを使ったことがあるなら、JJはすぐに馴染むと思うよ。スタックされた差分のPRを作るのは、jjではほぼ簡単だね。

Jujutsuのデザインには「中心的な概念」があるのかな? Gitの業界標準の地位を考えると、Jujutsuを選ぶ理由が具体的に何なのか理解するのが難しいんだ。これはすごく面白いコンセプトだと思うけど、もう少しターゲットを絞ったマーケティングがあればいいな。もちろん、GitのパワーユーザーがJujutsuの対象じゃないなら、このコメントは関係ないかもね。Gitの大きな弱点の一つは、新しい人に対してフレンドリーじゃないところ(専門用語、深い機能、発見しづらさ、アクセスしやすいGUIフロントエンドの欠如)だから、新しい人が入りやすいVCSソリューションには大きな可能性があると思う。

役に立ちそうなリンクをいくつか紹介するね。でも、このトピックについての最近のhnのディスカッションも探ってみる価値があるよ。俺や他の熱心な支持者がたくさんシェアしてるから。素晴らしい「メガマージ」ワークフロー: https://v5.chriskrycho.com/journal/jujutsu-megamerges-and-jj... https://ofcr.se/jujutsu-merge-workflow そして、jj cliをラップした絶対に素晴らしいTUIもあるよ。今まで使った中で最高のTUIかもしれないし、常に良くなってる。: https://github.com/idursun/jjui

jjはmagitのCLIに似ていて、他の人たちにも広まった感じだね。magitから切り替えるメリットはないよ。

Magitからjujutsuに切り替えたよ。私にとっての違いは、PRをスタックするのが簡単になったことだけ。小さな変更を意識するようになったし、「出荷する価値がある」と考えるものを縮小するようになった。全体的にはポジティブな体験だけど、Magitがうまくいってるなら、特に価値のあるキラーフィーチャーはないよ。今はhttps://github.com/bolivier/jj-mode.elも使ってて、Emacsの中でjjで必要なことが十分にできてる。

もしあなたがすでにヘビーユーザーのMagitなら、基本的なアイデアは多分魅力的に感じるだろうし、jjを使うことでそれらのアイデアをコマンドラインに持ち込めるよ。以前は不可能だと思ってたアクロバティックなこともできるようになるし、多くのユーザーが好きになった機能だよね。例えば、5方向のオクトパスマージをリベースして、まだ解決しなくていいコンフリクトを引き起こす2つの追加のリーフを持つようなやつ。(これは「メガマージ」として知られていて、私がその半ばバカげた名前と共に「発明」した責任があると思ってる。)Magitはjjにとって面白い平行線だと思う。「Gitの魔法」と言うけど、両者にとって「魔法」の多くはGitとはあまり関係なくて、ユーザーに対して露出される「デザイン言語」に関係してると思う。つまり、コミットや差分を操作、ナビゲート、配置するためのツールのことね。GitはMagitとjjのための物理的なストレージ層みたいなもので、それ以上の特別なソースは彼らのアルゴリズムやUX、そして「名詞と動詞」に独特なものがある。私の経験では、Magitユーザーは一般的にjjを売り込むのが難しい。彼らにとってjjはそれほど革命的ではないから。逆に、コマンドラインで5年以上も10スタックのリベースをやり続けてきた熱心なGitパワーユーザーは、売り込むのがとても簡単なんだ。でも、これらのユーザーはコミットグラフ操作のためのよくデザインされたツールの力を理解して評価する傾向がある。Gitのパワーユーザーは、私たちの最もハードコアな信者や支持者の一部なんだ。ちなみに、私はjjのメンテナーの一人で、個人的には結構良いと思ってる。数日間試してみるのもいいかも(Magitを使わずにできればね :)

Hacker Newsで議論の続きを見る