jj-vcs について
jj-vcsは、Jujutsu(`jj`)の公式ドキュメントを収録したスキルです。初心者やGit経験者向けに、作業コピーの自動記録、操作履歴と取り消し、競合処理、Git互換のワークフローを解説します。
主な機能
- 01作業コピーをコミットとして自動記録
- 02操作ログと取り消しの解説
- 03自動リベースと競合処理
- 04Git互換性とコマンド対応表
- 05設定、revset、テンプレートのリファレンス
活用シーン
- 01Gitのワークフローからjjへ移行
- 02競合解決や取り消し方法を確認
- 03jjを設定してリビジョンを選択
- 04GitHubやGerritのワークフローを確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ seckatie/ katies-ai-skills --skill jj-vcsインストール後、Claude Code で/jj-vcsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
CHANGELOG.mddocs/bookmarks.mdchangelog.mdcli-reference.mdcode-of-conduct.mdcommunity_tools.mdconfig.mdconfig.tomlconflicts.mdcontributing.mdcore_tenets.mddesign_doc_blueprint.mddesign_docs.mdFAQ.mdfilesets.mdgerrit.mdgit-command-table.mdgit-command-table.ymlgit-comparison.mdgit-compatibility.mdgithub.mdglossary.mddocs/design/copy-tracking.mdgit-submodule-storage.mdgit-submodules.mdrun.mdsparse-v2.mdtracking-branches.mddocs/governance/temporary-voting.mddocs/guides/divergence.md詳細
Jujutsu (jj) バージョン管理システム
Jujutsu は、Git リポジトリをストレージとして使用しながら、根本的に異なる、より強力なユーザー体験を提供する次世代のバージョン管理システムです。このスキルには、jj リポジトリの公式ドキュメント一式が含まれています。
クイックスタート: 実践的な入門については tutorial.md をお読みください。jj への移行を検討している Git ユーザーは、git-comparison.md をご覧ください。
Jujutsu とは?
Jujutsu(コマンド:jj)は、初心者にも経験豊富なユーザーにも使いやすい VCS として設計されています。主な革新点は次のとおりです。
- 作業コピーをコミットとして扱う:変更はコミットとして自動的に記録され、変更のたびに修正されます
- 操作ログと取り消し:すべての操作が記録され、取り消すことができます(バージョン管理そのものをバージョン管理するようなものです!)
- 自動リベース:コミットを変更すると、その子孫が自動的にリベースされます
- ファーストクラスのコンフリクト:コンフリクトはオブジェクトとして追跡され、コミットしたうえで後から解決でき、伝播させることもできます
- ステージングエリアなし:Git のインデックス/ステージングの複雑さをなくした、シンプルなワークフローです
- Git 互換:既存の Git リポジトリや GitHub などのホスティングサービスで利用できます
ドキュメントの構成
はじめに
- README.md - プロジェクトの概要、主な機能、入門情報
- index.md - 便利なリンクを掲載したドキュメントのホームページ
- install-and-setup.md - すべてのプラットフォーム向けのインストール手順と初期設定
- tutorial.md - 実践的な包括的チュートリアル(Git の知識があることを前提としています)
- FAQ.md - よくある質問と一般的な問題
- glossary.md - jj 固有の用語の定義
コアコンセプト
- working-copy.md - 作業コピーをコミットとして扱う仕組み
- operation-log.md - 操作ログと取り消し機能について
- conflicts.md - jj がマージコンフリクトをファーストクラスのオブジェクトとして扱う仕組み
- revsets.md - リビジョンを選択するための強力な言語(Mercurial の revset に類似)
- templates.md - テンプレート言語を使った出力形式のカスタマイズ
- bookmarks.md - ブックマーク(Git のブランチに相当)の操作
- filesets.md - ファイルを選択するための言語
設定
- config.md - 設定とオプションの完全なリファレンス
- config.toml - 設定ファイルの例
- cli-reference.md - コマンドラインインターフェイスのリファレンス
Git との統合
- git-compatibility.md - jj と Git リポジトリおよび Git の機能との連携
- git-comparison.md - jj と Git のワークフローおよびコマンドの比較
- git-command-table.md - Git コマンドと jj の対応するコマンドを示すクイックリファレンス表
- github.md - GitHub リポジトリとプルリクエストの操作
- gerrit.md - Gerrit コードレビューシステムの利用
ガイド
- guides/divergence.md - 変更の分岐についての理解と解決
- guides/multiple-remotes.md - 複数のリモートリポジトリの操作
技術ドキュメント
- technical/architecture.md - アーキテクチャの概要と設計上の決定
- technical/concurrency.md - jj が並行操作を安全に処理する仕組み
- technical/conflicts.md - コンフリクト処理の技術的な詳細
開発と貢献
- contributing.md - jj の開発への貢献方法
- code-of-conduct.md - コミュニティの行動規範
- core_tenets.md - jj の設計を導く基本原則
- roadmap.md - 開発ロードマップと予定されている機能
- community_tools.md - コミュニティが保守するツールと統合機能
- releasing.md - リリースプロセスのドキュメント
- design_docs.md - 設計ドキュメントの索引
- design_doc_blueprint.md - 設計ドキュメント作成用のテンプレート
比較と背景
- sapling-comparison.md - Meta の Sapling VCS との比較
- related-work.md - 関連するその他のバージョン管理システム
- testimonials.md - ユーザーの声と利用体験
プラットフォーム固有
- windows.md - Windows 固有の考慮事項と設定
プロジェクト情報
- CHANGELOG.md - バージョン履歴とリリースノート
- GOVERNANCE.md - プロジェクトのガバナンス構造
- SECURITY.md - セキュリティポリシーと報告方法
よくある利用パターン
ユーザーから次のような依頼があった場合:
- jj の使い方を始める →
tutorial.mdとinstall-and-setup.mdを確認します - Git から移行する →
git-comparison.mdとgit-command-table.mdを確認します - 概念を理解する →
glossary.mdと関連する概念ドキュメント(working-copy、conflicts など)を確認します - jj を設定する →
config.mdを確認します - GitHub を利用する →
github.mdを確認します - リビジョンを選択する →
revsets.mdを確認します - 出力をカスタマイズする →
templates.mdを確認します - コンフリクトに対処する →
conflicts.mdを確認します - 問題をトラブルシューティングする →
FAQ.mdを確認します - 誤操作を取り消す →
operation-log.mdを確認します - アーキテクチャを理解する →
technical/architecture.mdを確認します
コマンド早見表
基本操作
# Clone a Git repository
jj git clone <url>
# Check status
jj st # or jj status
# Create a new change
jj new
# Edit a change description
jj describe
# Show change log
jj log
# Undo last operation
jj undo
# Show operation log
jj op log
変更の操作
# Abandon a change
jj abandon
# Move changes between commits
jj squash # move changes into parent
jj move # move changes to another commit
# Rebase changes
jj rebase -r <revision> -d <destination>
# Resolve conflicts
jj resolve # interactive conflict resolution
Git との連携
# Fetch from Git remote
jj git fetch
# Push to Git remote
jj git push
# Import Git branches as bookmarks
jj bookmark track <name>@<remote>
リビジョンの選択(Revsets)
# Common revset expressions
@ # working copy commit
@- # parent of working copy
main@origin # bookmark from remote
::@ # ancestors of working copy
@:: # descendants of working copy
~empty() # non-empty changes
押さえておきたい主要概念
コミットとしての作業コピー
- 作業コピーは常にコミットです(
@として表示されます) - 作業中の変更は自動的にコミットされます
- 明示的な
commitコマンドは不要です(メッセージを追加するにはjj describeを使います) - 新しい変更を始めるには
jj newを使います
Revsets
- コミットを選択するための強力な言語です(Mercurial に似ています)
- 多くのコマンドで使用されます:
jj log -r、jj show、jj rebaseなど - ブール演算、関数、組み合わせをサポートします
- 詳細については
revsets.mdを参照してください
操作ログ
- jj のすべての操作(コミット、リベース、プッシュなど)が記録されます
- 操作履歴を確認するには
jj op logを使います - 最後の操作を取り消すには
jj undoを使います - 任意の以前の状態に戻すには
jj op restoreを使います
ブックマークとブランチ
- jj では「ブックマーク」を使います。Git のブランチに似ていますが、よりシンプルです
- ブックマークがなくても変更を保持できます(匿名ブランチ)
- ブックマークは単なるポインターであり、ワークフローに必須ではありません
- Git のブランチはブックマークとしてインポートされます
コンフリクト
- コンフリクトは作業コピーだけでなく、コミット内にも保存されます
- コンフリクトがある変更をコミットし、後から解決できます
- コンフリクトの解決結果はリベースを通じて反映されます
- 対話形式で解決するには
jj resolveを使います
ファイル構成
- README.md - 概要を記載したプロジェクトのメイン README
- docs/ - すべてのドキュメントファイル
- tutorial.md - 入門チュートリアル
- config.md - 設定リファレンス
- revsets.md - Revset 言語リファレンス
- templates.md - テンプレート言語リファレンス
- git-*.md - Git 連携のドキュメント
- guides/ - 特定のワークフローに関する手順ガイド
- technical/ - 技術アーキテクチャのドキュメント
- design/ - 機能の設計ドキュメント
ヒント
- jj の考え方を理解するには、チュートリアルから始めてください
- コマンドの詳細なヘルプを表示するには
jj help <command>を使います - 操作ログは安全網です。ためらわずに試してみてください
- Revsets は強力です。効率よく作業するために習得しましょう
- コンフリクトはよく起こるもので、適切に対処できます
- jj の考え方(コミットとしての作業コピー、自動リベース)を受け入れると、より効果的に使えます
- 予期しない動作があった場合は FAQ を確認してください
- テンプレートを使って、好みに合わせて
jj logの出力をカスタマイズできます
重要な注意事項
- Jujutsu は実験的ですが、開発が活発に進められており、開発者が日常的に使用しています
- Git との互換性は安定しているため、既存の Git ワークフローでも安全に使用できます
- 一部の機能は実験的です(README の警告を確認してください)
- 互換性を損なう変更が発生する場合がありますが、CHANGELOG に記載されます
- コミュニティは Discord、GitHub Discussions、IRC(Libera Chat の #jujutsu)で活発に活動しています
リソース
- ホームページ:https://jj-vcs.github.io/jj
- GitHub:https://github.com/jj-vcs/jj
- Discord:https://discord.gg/dkmfj3aGQN
- ドキュメント:https://jj-vcs.github.io/jj/latest/
- Steve Klabnik によるチュートリアル:https://steveklabnik.github.io/jujutsu-tutorial/
- Chris Krycho の YouTube シリーズ:https://www.youtube.com/playlist?list=PLelyiwKWHHAq01Pvmpf6x7J0y-yQpmtxp
コメント
Markdown 対応