The stack tree
A stack is a tree of branches with exactly one root, recorded in gitq's store. gitq keeps the tree; git keeps the commits. Everything else on this site is either a question about that tree, an edit to that tree, or a rewrite of the commits the tree points at.
The cascade
A cascade is gitq rebasing a whole tree of branches in one pass, parents before children, each branch onto its parent's new head. gitq sync is the cascade you will run most, and it is what this page mostly describes. Of the surgery commands, only reparent runs this same cascade: after its own move succeeds, it cascades the moved branch's descendants through it. fold and split --files never cascade descendants at all, and absorb restacks its descendants through a separate loop with its own, much simpler, conflict behavior. The other cascades below says exactly what each command does.
Work slots and leases
Cascades do not run in your checkout. gitq borrows a dedicated worktree, rebases there with a detached HEAD, and moves your branch refs only at the very end. A work slot is that borrowed worktree; a lease is the record of who is currently using one.
The pause protocol
A rebase conflict is not a failure. It is a question gitq cannot answer, so it stops, writes down exactly where it stopped, and hands the repo back to you in a state plain git understands. The pause protocol is the contract around that stop: an exit code, a file, and two commands that end it.
Where state lives
Everything gitq knows lives in plain JSON files you can read, diff, and delete. Nothing is written into your working tree, nothing is hidden in a database, and no file is required for gitq to start. This page lists every location, what it holds, when it is written, and what happens if you throw it away.