Skip to content

Git commands

garden speaks git. The day-to-day verbs work with garden in front of them, and take the flags you already know — they are forwarded to the engine untouched.

Terminal window
garden status
garden add .
garden commit -m 'fix the thing'
garden log --oneline
garden diff
garden rebase main

Flags come straight from the engine — run garden <command> --help for the exact set.

Command Summary Aliases
garden status Show working tree status —
garden log Show commit logs —
garden smartlog Show a graph of your commits (smartlog/stack) sl, stack
garden diff Show changes between commits or working tree —
garden show Show a commit’s metadata and diff —
garden blame Show what revision and author last modified each line —
garden grep Print lines matching a pattern —
garden add Start tracking files, or mark conflicts resolved —
garden commit Record changes to the repository —
garden uncommit Undo the last commit, keeping its changes —
garden absorb Amend pending changes into the right commits in your stack —
garden split Split a commit into several —
garden fold Combine multiple commits into one squash
garden checkout Switch to a commit/bookmark or a PR, or restore files (after –) goto
garden switch Switch the working copy to another commit —
garden restore Restore working-tree files (discard changes) —
garden revert Create a new commit that undoes an earlier commit —
garden reset Move back to a commit, keeping or discarding changes —
garden fetch Fetch new commits from the remote, leaving your work alone —
garden pull Fetch from the remote and restack your stack onto it —
garden rebase Reapply commits on top of another base —
garden restack Rebase orphaned descendants onto their rewritten parents —
garden hide Hide commits from your smartlog —
garden unhide Bring hidden commits back into view —
garden resolve List or mark merge-conflicted files as (un)resolved —
garden cherry-pick Apply the changes introduced by existing commits —
garden format-patch Write a commit out as a patch —
garden apply Apply a patch to the working copy —
garden patch Create or apply patches —
garden stash Stash changes in a dirty working directory —
garden branch List, create, or delete branches —
garden prev Check out the parent of the current commit —
garden next Check out the child of the current commit —
garden mv Move or rename a file —
garden rm Remove files from the working copy —
garden bisect Binary-search history for a faulty commit —

These have no equivalent in garden, by design rather than by omission.

Command Instead Why
git merge garden pr merge <pr> Merging is handled by the server-side merge queue.
git remote — Garden repositories use one canonical server.
git submodule — Garden is a managed monorepo.