scm
Source Code Management
jj workflow for preserving all work. Nothing is ever lost.
Core Principle
Every change is automatically tracked. In jj, working copy (@) is always a commit. No staging area. Every save is part of the current commit.
Rules
-
Commit after every testable change - After each TDD cycle, run
jj commit -m "msg". Don't batch. Worktree gets squash-merged anyway. -
Finalize before destructive ops - Before
jj restore,jj abandon, or ending session: commit first. -
Experiments: commit, try, backout - Commit the experiment, evaluate, then
jj backout -r @-if discarding. History preserved. -
Unknown changes: preserve first - Never
jj restoreunknown changes. Commit checkpoint, then investigate withjj diff -r @-. -
Deleting code: commit, then delete - Checkpoint before removing so you can recover from history.