mcpField
J
jj-vcs

jj-vcs

github.com/seckatie開発245 回インストール37 週間前に更新
リポジトリ

jj-vcs について

jj-vcsは、Jujutsu(`jj`)の公式ドキュメントを収録したスキルです。初心者やGit経験者向けに、作業コピーの自動記録、操作履歴と取り消し、競合処理、Git互換のワークフローを解説します。

主な機能

  1. 01作業コピーをコミットとして自動記録
  2. 02操作ログと取り消しの解説
  3. 03自動リベースと競合処理
  4. 04Git互換性とコマンド対応表
  5. 05設定、revset、テンプレートのリファレンス

活用シーン

  1. 01Gitのワークフローからjjへ移行
  2. 02競合解決や取り消し方法を確認
  3. 03jjを設定してリビジョンを選択
  4. 04GitHubやGerritのワークフローを確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/seckatie/katies-ai-skills --skill jj-vcs

インストール後、Claude Code で/jj-vcsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

CHANGELOG.md
docs/
bookmarks.md
changelog.md
cli-reference.md
code-of-conduct.md
community_tools.md
config.md
config.toml
conflicts.md
contributing.md
core_tenets.md
design_doc_blueprint.md
design_docs.md
FAQ.md
filesets.md
gerrit.md
git-command-table.md
git-command-table.yml
git-comparison.md
git-compatibility.md
github.md
glossary.md
docs/design/
copy-tracking.md
git-submodule-storage.md
git-submodules.md
run.md
sparse-v2.md
tracking-branches.md
docs/governance/
temporary-voting.md
docs/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)で活発に活動しています

リソース

コメント