The Git to TOVIO cheat sheet

Command for command, checked against the shipped CLI — including the ones that look familiar and are not.

Written By Dustin

Last updated 29 minutes ago

Every row below was checked against the command definitions in the shipped tovio binary. Placeholders in angle brackets are yours to fill in.

Everyday

GitTOVIO
git inittovio init — add --mode simple, --mode team or --mode agentic to skip the one interactive question
git statustovio status (--conflicts also reports whether the lane lands cleanly onto main; --prompt emits a one-line shell-prompt segment)
git addNothing. There is no staging area — your edits are already in the current change.
git commit -mtovio commit -m. It takes no path arguments: a commit is the whole working copy.
git commit --amendtovio commit --amend — folds the working change into the last commit and keeps its chg: id. Omit -m to keep the existing message.
git rm <file>No command. Delete the file; the next snapshot records the deletion.
git mvtovio mv <from> <to> (alias tovio rename) — records the move regardless of content similarity, as one undoable operation.
git checkout -- <file>tovio restore <file>
git branchtovio lane — list
git branch <name>tovio lane <name> — create
git branch -d <name>tovio lane -d <name> — delete (undoable)
git switch / git checkouttovio switch <name>
git checkout -b <name>tovio checkout -b <name> (a compat alias that creates the lane, then switches)
git mergetovio land --into main
git merge (octopus)tovio land <laneA> <laneB> --into main
git rebasetovio rebase --onto <lane-or-change>
git cherry-picktovio cherry-pick <rev>... [--onto <lane>]
git reverttovio revert <rev>... — a merge target needs --mainline <n>
git tagtovio tag — list, or tovio tag <name> [<commit>] to create

History and inspection

GitTOVIO
git logtovio log — the topology graph is the default, not a flag
git log --graphtovio log (already the default; --no-graph gives the flat list)
git log --onelinetovio log --oneline
git log -n 20tovio log --limit 20
git log --alltovio log --all — seed the graph from every lane tip, not just HEAD
git log --first-parenttovio log --first-parent
git log -- <path>tovio log <path>
git log -S / -Gtovio log -S <string> / tovio log -G <regex> — the same pickaxe
git log --format=tovio log --format json, --format csv, or --format template:{change} {author} {message}
git difftovio diff — working copy against the last commit. It takes no revision arguments.
git blametovio blame <file> — attribution is by chg: id, so it survives history rewriting
git show <rev>:<path>tovio cat <path> --at <rev>
git greptovio grep <pattern> [<rev>] — add -F, -i or --path <glob>
git bisecttovio bisect start, then good / bad / skip / run <cmd> / status / reset
git rev-list --left-right --counttovio explain dag <a> <b> — ancestor sets, ahead/behind, and the merge base
git reflogThe op-log. tovio explain undo prints it; tovio undo and tovio redo walk it.

Remotes and sync

GitTOVIO
git clonetovio clone <remote> <repo> <dir> — three positional arguments, not one URL
git clone --filter=blob:nonetovio clone ... --blobless
git clone --depth <n>tovio clone ... --depth <n>
git fetch + git pull + git pushtovio sync — one command, both directions. --push or --pull restricts it.
git fetch --unshallowtovio fetch --complete (or tovio fetch --deepen <n>)
git remote addtovio remote add <name> <url> <repo> [--cert <file>]
git remote -vtovio remote list
git remote show <name>tovio remote show <name>
git remote remove <name>tovio remote remove <name> (alias rm)
git sparse-checkouttovio sparse set / add / list / clear / preview / checkout

Maintenance and recovery

GitTOVIO
git resettovio undo (and tovio undo --to <op-id>)
git stashNothing needed — tovio switch carries uncommitted work across lanes.
git lfsNothing. Large binaries are chunked and stored natively.
git gctovio gc — plus --repack, --explode, --aggressive, --auto
git fscktovio fsck--strict promotes key-material warnings to failures
git configtovio config get / set / unset / list
git helptovio help — add --team, --advanced or --all to widen the index, or name a command
git completiontovio completions <shell>
git rerereAutomatic. tovio explain rerere says why a saved resolution did or did not replay.

Five that look familiar and are not

These are the ones that cost people an afternoon.

Looks familiarActually
tovio fetchNot git fetch. It grows a partial clone — --deepen <n> extends a shallow history, --complete fetches every omitted object. To get remote work, run tovio sync.
tovio diffTakes no arguments at all. There is no tovio diff <rev> and no tovio diff <a> <b>; it is always the working copy against the last commit.
tovio resetA migration hint that prints and exits. It does not reset anything — tovio undo does.
tovio branchA hidden alias for tovio lane, with the same <name> and -d arguments. tovio br works too.
.tovioignoreUses gitignore syntax, but its defaults are not gitignore's: every dot-prefixed path is untracked out of the box. See the article on dotfiles.

No equivalent

  • git worktree — no equivalent. One working copy per clone.
  • git submodule update — submodule entries import and export losslessly as pointers, but nothing fetches or populates them.
  • git filter-branch / git filter-repo — no equivalent. tovio obliterate erases one named object payload behind an audited tombstone; it is not a history rewriter.
  • git format-patch / git am — no equivalent. Changes move by sync, bridge, or proposal.
  • git notes — no equivalent. Rationale and provenance are first-class fields on the change instead.
  • git push --force — nothing to force on the native path, because lane refs converge. Over the Forge's Git surface a force push is a real operation, gated on the pushing token carrying branch authority; without it the non-fast-forward is refused.

The aliases

add, branch (and br), checkout, stash, reset, push and pull all accept their Git spelling. Each runs the native TOVIO action and prints a one-line note on stderr naming the real verb, so a script that reads stdout is unaffected. They are hidden from tovio help because they are a migration aid, not part of the command surface.