Docs

Search Vex documentation

Search public documentation, commands, and release notes.

Browse documentation

Repositories and Changes

Git command comparison

Map everyday Git tasks to Vex-native source-control workflows.

On this page

The essential shift

  • No staging area. Edit files directly; Vex snapshots them into the current change.
  • Changes compose naturally. Use vex new, vex rebase, and vex squash instead of manufacturing a branch for every step.
  • Publishing is explicit. A bookmark names the target you publish; review and landing are separate workflow steps.

Everyday work

TaskGitVex
Clone a repositorygit clone <url>vex clone <org>/<repo>
Check the working copygit statusvex status
See a diffgit diff HEADvex diff
Start related workgit switch -c topic <target>vex new main -m "message"
Inspect historygit log --oneline --graphvex log -r ::@
Amend the previous changegit commit --amendvex squash
Recover a repository operationgit reflogvex undo

In a Vex-native checkout, do not run git add: there is no staging area. Use vex restore <paths> to discard selected file changes and vex abandon to remove an entire change.

Publish and review

For an explicit target publication, finalize a change and move the target bookmark to it.

Terminal
vex commit -m "Describe the completed change"
vex bookmark set main -r @-
vex push main

For reviewable work, submit independent changes and land by change number.

Terminal
vex submit -r 'main..@' --target main
vex sync --target main
vex land #42

vex pull refreshes hosted state while leaving your files in place. vex pull --update moves the working copy when it is safe; vex pull --rebase moves current changes onto the selected target.

When to use Vex Git compatibility

Use vex git when you are deliberately operating against a Git remote or consuming a Git-compatible path. Use vex clone, vex status, vex commit, and vex push in a Vex-native checkout. See source control for the full model and remote Git sync for external providers.