Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Coming from git

You can move to Grovedock one person at a time. git users and pando users work on the same branches of the same server.

Keep using git

With git-remote-pando on your PATH (every install method puts it next to pando), git talks to a Grovedock server directly:

git clone pando::http://127.0.0.1:7420 repo
git push          # lands on the server; if main moved, the server rebases instead of rejecting
git pull --rebase

Fetches are incremental. Set PANDO_PUSH=strict to get git’s reject-if-behind behaviour instead of a server-side rebase.

Command map

gitpandoNotes
git clone URLpando clone URL DIRadd --path services/api to check out part of the repository
git statuspando statusalias st
git add + git commit -mpando commit -m MSG [PATHS]no staging area; pass paths to commit a subset
git pushpando landalias push; the server rebases if main moved
git pullpando syncalias pull
git switch -c x / git switch xpando checkout -b x / pando checkout x
git log -- pathpando log pathanswered by the server, no local history
git diff / git diff A Bpando diff / pando diff A B
git show REVpando show REV
git blame fpando blame f
git show REV:pathpando cat REV pathworks without a clone
git ls-tree REV dirpando ls REV [dir]works without a clone
git branchpando refsalias branch
git merge-base A Bpando merge-base A B
(none)pando find PATTERNpath search on the server
git lfs lock f / git lfs unlock fpando lock f / pando unlock fexclusive locks for files that cannot be merged
git lfs lockspando locks [dir]
(none)pando mount DIR --rev maina read-only view, files fetched on first read (Linux, macOS, Windows)

Moving history in and out

pando import-git ~/code/my-repo --server http://127.0.0.1:7420   # incremental; rerun any time
pando export-git ./mirror.git                                     # first-parent history, identical trees

Keep GitHub, GitLab or Bitbucket up to date

pando mirror pushes every landed change to an existing git host, so CI, code search and issue links keep working there. See Mirror to a git host.

Submodules are not imported. Commits are imported with their authors, messages and dates, so pando log and pando blame show the original history.

What works differently

  • No staging area. pando commit takes paths instead of git add.
  • No local history. log, blame and diff between revisions ask the server. You need the server to be reachable; this is the main trade-off against git.
  • Landing replaces push. If main moved, the server rebases your change when it touches different files. You only resolve conflicts that are real.