PUT: write any ref — stage, mkdir branches, push

PUT writes to repo/worktre reflogs: creates, deletes or resets branches, pushes a ref to a remote, or stages files for the next commit. PUT is deliberately unconstrained: any ref to any sha, force allowed on either side of the wire; DELETE is PUT's remove counterpart.

CLI use

PUT's four slots (see Verbs) combine orthogonally: ?branch names the ref, ./path stages a blob, //remote pushes, and #sha sets an explicit value.

Where it writes

PUT writes the wtlog for path rows and REFS for ref rows; blob bytes land in keeper, and PUT never writes a commit object.

Errors

PUT's refusals guard the staging set and the move form; PUT never half-applies a change.