jj (Jujutsu)早見表
Techhttps://github.com/jj-vcs/jj について。
jjとは
gitより新しい世代のVCS(バージョン管理システム)です。
gitと違ってステージ(git add)の概念がなく、いまある全てのファイルが管理対象と見なされます。このためvibe codingのように新しいファイルをがんがん作っても都度git addするという手間がありません(その代わり.gitignore相当を最初にちゃんと書いておく必要あり)。
互換性
.gitをバックエンドとして使う機能があるので、「jjを使いつつ、成果物をgithubで公開」とか「チームメンバーはgitで、自分だけjj」みたいなことができます。
公式チュートリアル
https://docs.jj-vcs.dev/latest/tutorial/
コマンドメモ
- 初期化
jj git clone <url>jj git init
- 状況確認
jj st(status)jj diffjj log
- コミット作成
jj describe$EDITORでコミットメッセージを編集jj newコミットを確定
コミットの作り方について
gitはgit commitのタイミングでコミットメッセージを書きますが、jjではjj describeで事前にコミットメッセージだけ記入することができます。このため作業を始めるときに先にコミットメッセージだけ書いておく、みたいなことができます。
逆にいうとjj describeだけではコミットはまだ作成されず、jj newで確定させる必要があります。(前述のようにgit add相当のコマンドはなく、いまあるファイルがすべてコミット対象になります。)
いちいち2コマンド叩くのは面倒、という人はjj commitというコマンドを使いましょう。
ちなみにコミットメッセージが空の状態でもjj newはできます。いちいちコミットメッセージを書くのは面倒だけど差分管理だけしたい、という場合はjj new連打でいけます(良い子は真似しないように)。