📒
【Jujutsu】個人的に使いそうなコマンドチートシート
個人的によくやる操作
頻出コマンド
| コマンド | 説明 |
|---|---|
jj new |
新しい作業を開始 |
jj log |
コミット履歴を表示 |
jj diff |
現在の変更を表示 |
jj diff -r <rev> |
特定のリビジョンの変更を表示 |
jj describe -m "説明"jj desc -m "説明"
|
リビジョンに説明を追加 |
jj restorejj restore --from main
|
現在の変更をすべて破棄。--fromで指定のリビジョンに状態を戻せる |
履歴の編集
| コマンド | 説明 |
|---|---|
jj split -i -m "説明" |
TUIを使用して選択された変更を別のリビジョンに分割できる |
jj squash --into <rev> -i |
現在の変更を特定のリビジョンに統合する。-iでTUIを使用してインタラクティブに選択できる。 |
jj rebase -d <main>jj rebase -b <bookmark> -d <main>
|
現在の作業を指定のブックマークの先頭に移動させる。-bで<bookmark>を<main>の最新に移動させる。 |
Git操作関連
| コマンド | 説明 |
|---|---|
jj bookmark set <bookmark>jj b set <bookmark>
|
現在のリビジョンに既存のブックマークを移動する。 もしブックマークがなければ新しく作成する。 -rを付ければ、指定のリビジョンに移動できる。-Bを付ければ、過去のリビジョンに戻せるようになる。 |
jj git push |
現在作業中のブックマークをリモートにプッシュ |
jj git push -b <bookmark> |
指定のブックマークをリモートにプッシュ |
jj git fetch |
Gitリモートリポジトリからデータを取得 |
セットアップ
| コマンド | 説明 |
|---|---|
jj config set --user user.name <name> |
ユーザー名の設定 |
jj config set --user user.email <email> |
メールの設定 |
jj git clone <repository> |
Gitリポジトリをバックエンドとして使用して、 既存のリモートリポジトリをクローンする |
jj git init --colocate |
既にローカルにあるGitリポジトリで Jujutsuを利用できるようにする |
基本的なワークフロー
# 1.作業開始
jj new
# 2.ファイルを編集(自動でトラッキング)
# 3.状態確認
jj st
jj diff
# 4.必要に応じて分割
jj split -i
jj desc -r '@-'
# 5.説明追加
jj desc
# 6.次の作業へ
jj new
リモートへの反映ワークフロー
# 1.最新環境を取得
jj git fetch
# 2.作業開始
jj new main
# 3.いろいろ作業する
# ...
# 4.ブックマーク作成
jj bookmark set feature/xxx
# 5.リモートに現在の作業環境をプッシュ
jj git push
基本操作
| コマンド | 説明 |
|---|---|
jj statusjj st
|
現在の作業状態を確認 |
jj log |
コミット履歴を表示 |
jj diff |
現在の変更を表示 |
jj diff -r <rev> |
特定のリビジョンの変更を表示 |
jj show <rev> |
特定のリビジョンの詳細(説明 + diff) |
jj restorejj restore --from main
|
現在の変更をすべて破棄。--fromで指定のリビジョンに状態を戻せる |
作業の開始・切り替え
| コマンド | 説明 |
|---|---|
jj new |
新しい作業を開始 |
jj new -m "説明" |
新しい作業を開始するときにコメントを追加 |
jj edit <rev> |
編集対象を特定のリビジョンに移動 |
jj describe -m "説明"jj desc -m "説明"
|
リビジョンに説明を追加 |
jj commit |
jj describeとjj newを同時に行う。-mを付けない場合、説明記述用のエディタが開く。 |
履歴の編集
| コマンド | 説明 |
|---|---|
jj squash --into <rev> -i |
現在の変更を特定のリビジョンに統合する。-iでTUIを使用してインタラクティブに選択できる。 |
jj split -i |
TUIを使用して選択された変更を別のリビジョンに分割できる |
jj abandon <rev> |
指定のリビジョンを削除できる |
jj rebase -d <main>jj rebase -b <bookmark> -d <main>
|
現在の作業を指定のブックマークの先頭に移動させる。-bで<bookmark>を<main>の最新に移動させる。 |
ブックマーク操作
| コマンド | 説明 |
|---|---|
jj bookmark set <bookmark> |
現在のリビジョンに既存のブックマークを移動する。 もしブックマークがなければ新しく作成する。 -rを付ければ、指定のリビジョンに移動できる。-Bを付ければ、過去のリビジョンに戻せるようになる。 |
jj bookmark delete <bookmark> |
指定のブックマークを削除。 リモートブックマークも一緒に削除される。 現在作業中のリビジョンは破棄されない。 |
jj bookmark rename <old> <new> |
指定のブックマークの名前を変更 |
jj bookmark track <main@origin> |
リモートブックマークをローカルで追跡 |
jj bookmark list |
現在存在するブックマークのリストを表示 |
jj bookmark list --all |
リモートブックマークも含めたリストを表示 |
Git操作
| コマンド | 説明 |
|---|---|
jj git clone <repository> |
Gitリポジトリをバックエンドとして使用して、 既存のリモートリポジトリをクローン |
jj git init --colocate |
既にローカルにあるGitリポジトリでJujutsuを利用できるようにする |
jj git fetch |
Gitリモートリポジトリから最新データを取得 |
jj git push |
現在作業中のブックマークをリモートにプッシュ |
jj git push -b <bookmark> |
指定のブックマークをリモートにプッシュ |
jj git remote rename <old> <new> |
Gitリモートリポジトリの名前を変更 |
jj git remote remove <remote> |
指定のGitリモートリポジトリを削除 |
リビジョンの指定方法
| 記法 | 意味 |
|---|---|
@ |
現在のワーキングコピー |
@- |
現在の親 |
@-- |
二つ前 |
root() |
ルートコミット |
heads() |
すべてのhead |
<rev1>::<rev2> |
rev1からrev2までの範囲 |
復元・取り消し
| コマンド | 説明 |
|---|---|
jj op log |
操作履歴を表示 |
jj op restore <op> |
特定の操作時点に復元 |
jj undo |
直前の操作を取り消し |
セットアップ
| コマンド | 説明 |
|---|---|
jj config set --user user.name <name> |
ユーザー名の設定 |
jj config set --user user.email <email> |
メールの設定 |
jj git clone <repository> |
Gitリポジトリをバックエンドとして使用して、 既存のリモートリポジトリをクローンする |
jj git init --colocate |
既にローカルにあるGitリポジトリで Jujutsuを利用できるようにする |
jj config set --repo snapshot.max-new-file-size "100MiB" |
開発環境にスナップショット(自動保存・管理)可能な最大ファイル容量を設定 |
jj config set --user snapshot.max-new-file-size "100MiB" |
個人設定にスナップショット(自動保存・管理)可能な最大ファイル容量を設定 |
Discussion