Jujutsu(jj)¶
Jujutsuとは¶
Jujutsu(じゅじゅつ、略称:jj)はGitと連携して動作するバージョン管理システムである。
Gitの持つ強力な履歴管理機能を活かしつつ、
-
操作を簡単にする
-
履歴整理を楽にする
-
コンフリクト処理を改善する
ことを目的として開発されている。
Gitとの関係¶
JujutsuはGitの代替というより
Gitの上で動くフロントエンド
に近い存在である。
構成イメージ
ユーザー
↓
Jujutsu (jj)
↓
Git Repository
そのため
GitHub
GitLab
Bitbucket
などもそのまま利用できる。
なぜ作られたのか¶
Gitは非常に高機能だが、
-
コマンドが複雑
-
Rebaseが難しい
-
履歴整理が面倒
-
Detached HEAD問題
などの課題がある。
Jujutsuは
Gitの強みを維持しながら
使いやすさを向上させる
ことを目指している。
主な特徴¶
コミット忘れが起きにくい¶
Gitでは
git add
git commit
が必要である。
Jujutsuでは
jj describe
などを使いながら作業を進める。
変更は常に作業コミットとして管理される。
Undoが簡単¶
Gitでは
git reset
git revert
などを使う。
Jujutsuでは
jj undo
で直前操作を戻せる。
初心者でも扱いやすい。
Rebaseが強力¶
履歴の整理が非常に簡単。
Git
難しい
Jujutsu
比較的わかりやすい
インストール¶
Windows
winget install Martinvonz.Jujutsu
確認
jj --version
リポジトリ作成¶
新規作成
jj git init
既存Gitを利用
jj git init --colocate
状態確認¶
jj status
Gitの
git status
に相当する。
履歴確認¶
jj log
特徴
グラフ表示が見やすい
例
@ 現在
○
○
○
コミットメッセージ変更¶
jj describe
現在のコミットに説明を付けられる。
新しい変更作成¶
jj new
新しい作業コミットを作成する。
変更内容確認¶
jj diff
Gitの
git diff
に近い。
Push¶
GitHubへ送信
jj git push
Pull¶
取得
jj git fetch
その後
jj rebase
などで同期する。
Undo¶
Jujutsu最大の特徴の一つ。
jj undo
例
間違ってrebaseした
↓
undo
↓
元に戻る
ブランチ¶
Jujutsuでは
Bookmark
という概念を使う。
作成
jj bookmark create main
一覧
jj bookmark list
GitHubとの相性¶
非常に良い。
利用可能
-
GitHub
-
GitHub Actions
-
Pull Request
-
GitHub Pages
そのため
Aster
のようなプロジェクトでも問題なく利用できる。
Gitとの比較¶
| 項目 | Git | Jujutsu |
|---|---|---|
| 普及率 | 非常に高い | 低い |
| 学習資料 | 多い | 少ない |
| 操作性 | やや難しい | 比較的簡単 |
| 履歴整理 | 難しい | 強力 |
| Undo | 面倒 | 簡単 |
メリット¶
-
Gitより扱いやすい
-
Undoが強力
-
Rebaseしやすい
-
GitHub利用可能
-
履歴整理が簡単
デメリット¶
-
利用者が少ない
-
情報が少ない
-
チーム全員が理解する必要がある
Asterでの活用¶
Asterでは
-
STM32ファームウェア
-
KiCad設計データ
-
MkDocsドキュメント
-
Node.jsコード
などを管理できる。
個人開発であれば
Gitより快適
と感じる場面も多い。
Gitとどちらを使うべきか¶
初心者¶
Git
がおすすめ。
資料が圧倒的に多い。
Gitに慣れている¶
Jujutsu
を試す価値がある。
チーム開発¶
まずはGitを理解した方がよい。
まとめ¶
Jujutsu(jj)はGitと連携して動作する次世代のバージョン管理ツールである。
-
Gitリポジトリをそのまま利用できる
-
履歴整理がしやすい
-
Undo機能が強力
-
GitHubと連携可能
-
個人開発との相性が良い
Gitの複雑さに悩んでいる場合、有力な選択肢の一つである。