| jj コマンド | git 相当コマンド | 説明・備考 |
| jj init | git init | 新しいリポジトリを作成(jjはデフォルトでGitバックエンド) |
| jj git clone <url> | git clone <url> | Gitリポジトリをクローンし、jjで初期化 |
| jj status | git status | 作業中の変更を表示(jjでは自動スナップショット済み) |
| jj log | git log | コミット履歴を表示(jjの方がデフォルトでツリー表示がきれい) |
| jj diff | git diff | 変更差分を表示 |
| (不要) | git add <file> | jjでは作業中の変更が自動でコミットされる |
| jj describe -m "msg" または jj new -m "msg" | git commit -m "msg" | コミットメッセージを設定(describeで既存変更、newで新しいコミット作成) |
| jj describe -m "new msg" | git commit --amend | 現在のコミットのメッセージを編集(自動で子孫をリベース) |
| jj checkout <bookmark> または jj new <bookmark> | git checkout <branch> | bookmark(Gitのbranch相当)に切り替えまたは新しい変更を作成 |
| jj new -m "msg" <bookmark> | git switch -c <branch> | 新しいbookmarkを作成して切り替え |
| jj bookmark create <name> | git branch <name> | 新しいbookmark(branch)を作成 |
| jj bookmark delete <name> | git branch -d <name> | bookmarkを削除 |
| jj bookmark list | git branch -l | bookmark一覧 |
| jj merge | git merge <branch> | 現在のbookmarkにマージ(自動でマージコミット作成) |
| jj rebase -d <bookmark> | git rebase <branch> | 変更を指定のbookmark上にリベース(子孫も自動リベース) |
| jj rebase -i | git rebase -i | インタラクティブにリベース |
| (不要) | git rebase --continue | jjは競合をコミット内に記録するため、rebaseが中断しない |
| jj new -m "stash" | git stash | 一時的に変更をスタッシュ(新しい変更として保存) |
| jj squash -r <stash> | git stash pop | スタッシュを適用(squashで親に統合) |
| jj restore -r <commit> | git reset --hard <commit> | 指定コミットの状態にリセット |
| jj squash -r <commit> | git reset --soft <commit> | 変更を親に統合(soft reset相当) |
| jj move --from <commit> --to @ | git cherry-pick <commit> | 指定コミットの変更を現在の作業中に移動 |
| jj git fetch && jj rebase -d main@origin | git pull | fetch + rebase(pull相当) |
| jj git fetch | git fetch | リモートから取得 |
| jj git push | git push | リモートにpush(--allで全bookmarkなど) |
| jj show <commit> | git show <commit> | 指定コミットの詳細を表示 |
| jj file annotate <file> | git blame <file> | ファイルの変更履歴を表示 |
| jj new -r <commit> -m "revert" または jj op revert | git revert <commit> | コミットを元に戻す(revert) |