jj-vcs/jj
Jujutsu (jj) は、作業コピーの変更をコミットとして記録し、すべての操作を追跡して取り消せる、Git互換のバージョン管理システムです。
- スター
- 32,394
- フォーク
- 1,279
- 未解決の Issue
- 1,249
- 最終コミット
- 6 時間前
これは何?
Jujutsuは、コードを取得して変更を追跡し、ほかの人に公開できるソフトウェアプロジェクト向けのバージョン管理システムです。コマンドラインツールの名前はjjです。デフォルトのストレージバックエンドはGitリポジトリを使用するため、任意のGitリモートからfetchしたり、そこへpushしたりでき、いつでもGitに戻せます。
Jujutsuでは作業コピーを実際のコミットとして扱うため、作業ツリーに未コミットの変更があってもコマンドが失敗せず、stashやステージングエリアも必要ありません。リポジトリに対するすべての操作は操作ログに記録されるため、ミスを取り消したり、過去の操作を元に戻したりできます。コンフリクトはワークフローを止めるのではなくコミット内に保存され、コミットを変更すると、その子孫は自動的にリベースされ、コンフリクトの解決内容も引き継がれます。
このプロジェクトは、revsetクエリや匿名ブランチなど、Git、Mercurial、Darcsの考え方を取り入れています。現在、本番環境で使えるのはGitバックエンドで、プロジェクトはまだ1.0以前のため、一部のワークフローやディスク上のフォーマットは今後変更される可能性があります。
主な機能
- 01デフォルトのストレージとしてGitリポジトリを使用し、任意のGitリモートと連携できます。
- 02作業コピーをコミットとして記録するため、ステージングエリアやstashは不要です。
- 03リポジトリに対するすべての操作を記録し、過去の操作の取り消しや復元を可能にします。
- 04コンフリクトをコミット内に保存し、子孫を自動的にリベースします。
- 05履歴を書き換えるためのjj describe、jj diffedit、jj split、jj squashなどのコマンドを提供します。
ユースケース
- 既存のGitリポジトリを使いながら、よりシンプルなワークフローを実現したい開発者。
- 操作ログを使ってミスから復旧する必要があるチーム。
- リポジトリをDropboxフォルダに置いたり、rsyncでバックアップしたりする際に、並行処理の安全性を確保したい場合。
クイックスタート
- 1
READMEにリンクされている公式のインストール手順に従ってjjをインストールする
- 2
公式チュートリアルに取り組み、基本を学ぶ
- 3
jj help <command>で各コマンドの使い方を確認する
使う前に知っておきたいこと
- READMEではJujutsuは実験的と説明されており、バグやユーザーインターフェースの変更が発生する可能性があります。
- 本番環境で使用できる状態なのはGitストレージバックエンドのみで、他のバックエンドは対応していません。
- READMEによると、このプロジェクトは比較的新しく、まだ多くの作業が残っています。
- 安全な同時レプリケーションなど、一部の機能は実験的とされており、ストレージ形式が変更される可能性があります。
収録されている特集
トピック
よくある質問
- jj とは?
- Jujutsu (jj) は、作業コピーの変更をコミットとして記録し、すべての操作を追跡して取り消せる、Git互換のバージョン管理システムです。 Jujutsuは、コードを取得して変更を追跡し、ほかの人に公開できるソフトウェアプロジェクト向けのバージョン管理システムです。コマンドラインツールの名前はjjです。デフォルトのストレージバックエンドはGitリポジトリを使用するため、任意のGitリモートからfetchしたり、そこへpushしたりでき、いつでもGitに戻せます。
- jj は無料で使えますか?ライセンスは?
- jj は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- jj は今もメンテナンスされていますか?
- 活発にメンテナンス中。jj の最終コミットは 2026年11月7日 です。
- jj は何に使えますか?
- 既存のGitリポジトリを使いながら、よりシンプルなワークフローを実現したい開発者。 操作ログを使ってミスから復旧する必要があるチーム。 リポジトリをDropboxフォルダに置いたり、rsyncでバックアップしたりする際に、並行処理の安全性を確保したい場合。
- jj のインストール方法は?
- READMEにリンクされている公式のインストール手順に従ってjjをインストールする 公式チュートリアルに取り組み、基本を学ぶ jj help <command>で各コマンドの使い方を確認する
- jj はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/jj-vcs/jj
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Gitは、高速な分散型バージョン管理システムです。上位操作から内部機能まで、幅広いコマンドを備えています。
Gitリポジトリの閲覧や変更のチャンク単位でのステージングに使える、ncursesベースのテキストUI。
レビューしやすい小さなブランチを連ねたスタック形式のプルリクエストを作成、リベース、提出、マージできる GitHub CLI 拡張機能。
関数・クラス・キー単位でコードをマージし、独立した編集による不要な競合を防ぐ、エンティティ単位のGitマージドライバーです。