JujutsuとGitの主な違い
public.icon
JujutsuとGitの主な違い
基本的な設計思想
Jujutsu: Gitの概念を改良し、より直感的で安全なインターフェースを提供
Git: 最も広く使われている分散バージョン管理システム、成熟したエコシステム
コミットモデル
Jujutsu: すべての変更が自動的にコミットされる(作業コピーの概念が変更セット)
Git: 明示的に git add と git commit が必要
ブランチ管理
Jujutsu: ブランチではなく「変更セット」中心の設計。ブックマーク(Gitのブランチに相当)はオプション
Git: ブランチが中心的な概念
マージとコンフリクト処理
Jujutsu: コンフリクトをファーストクラスの概念として扱い、コンフリクト状態でもコミット可能
Git: コンフリクトを解決しないと次に進めない
操作の安全性
Jujutsu: ほぼすべての操作が元に戻せる(jj op undo)
Git: git reflog で一部復元可能だが、より複雑
インデックス(ステージング)
Jujutsu: インデックスの概念がない
Git: ステージングエリア(インデックス)が存在
コマンド体系の違い
Jujutsuのコマンド例:
jj new - 新しい変更を開始
jj describe - 変更の説明を記述
jj squash - 変更を統合
対応するGitコマンド:
git checkout -b - 新しいブランチを作成して切り替え
git commit - 変更をコミット
git rebase -i - インタラクティブリベース
より一貫性のある直感的なコマンド名を採用している。