crab push
Push committed pointer blobs and their backing chunks to a crab:// remote.
Synopsis
crab push [OPTIONS] [<REMOTE>] [<REFSPECS>...]Description
crab push uploads new xorbs (chunked file content) from the local staging
area to the remote object store and advances remote refs — the crab equivalent
of git push. It resolves the remote URL from git config, validates it is a
crab:// URL, opens the staging area, resolves refspecs, and drives the push
pipeline directly.
The command produces identical remote state to git push via the remote
helper, but is faster for multi-file pushes because it uploads xorbs
concurrently and uses an incremental graph walk to skip already-pushed
content.
For conceptual background on the push pipeline, see Pushing Changes.
Arguments
| Argument | Required | Description |
|---|---|---|
remote | No | Remote name or URL. Defaults to the current branch's upstream remote, or origin. |
refspecs | No | One or more refspecs to push. Defaults to the current branch. Supports src:dst, +src:dst (force), and :dst (delete). |
Options
| Option | Short | Default | Description |
|---|---|---|---|
--jobs | -j | 8 | Number of concurrent file-processing workers |
--upload-concurrency | 16 | Maximum concurrent xorb uploads | |
--dry-run | false | Show what would be pushed without uploading | |
--force | -f | false | Bypass fast-forward checks |
--verbose | -v | false | Show per-step timing and per-file progress |
--no-incremental | false | Force full graph walk, bypassing incremental optimization | |
--no-color | false | Disable colored output and ANSI escape codes | |
--json | false | Emit a single JSON envelope with the terminal result | |
--jsonl | false | Stream JSONL output (one event per line) |
Examples
Push the current branch
crab pushPush to a specific remote
crab push my-remotePush a specific branch
crab push origin feature-branchForce push
crab push --force origin mainDry run
crab push --dry-runPush with higher upload concurrency
crab push -j 16 --upload-concurrency 32 origin mainDelete a remote ref
crab push origin :refs/heads/old-branchJSON Output
--json emits one terminal result envelope. --jsonl streams progress and
ends with the same result payload. The result includes pushed refs, per-ref
status, duration, and remote URL. See Structured Output
for envelope details, event types, and error handling.
Related Commands
crab add— stage files for push.crab fetch— download refs and packs from a remote.crab status— check which files have staged changes.crab hydrate— materialize file content after cloning.