atomic push
Push changes to a remote.
Synopsis
atomic push [OPTIONS] [REMOTE]
Description
The push command uploads changes to a remote repository, enabling
collaboration and backup. Atomic compares your local view state with the
remote, determines which changes are missing on the remote, and uploads them.
Atomic's push operation is conflict-free due to the mathematical properties of patch theory: the remote can accept pushes from multiple sources without merge conflicts.
Draft views push their complete graph
When you push a draft view, push uploads the view's full effective
change set — the draft's own changes plus every change it inherits from
its shared base — in dependency order, not just the draft's delta. This
guarantees the remote ends up with a complete, self-contained graph for that
view, even on a fresh remote that has never seen the base.
Changes the remote already has are skipped automatically: they're deduplicated by hash and, when they exist on the remote under another view, adopted as a cheap metadata operation rather than re-uploaded. So re-including the shared base is idempotent — nothing is transferred twice.
The remote therefore holds a complete, self-contained graph for the view. Push also transmits the view's identity — its scope and parent — in a manifest, so a draft stays a draft with its parent chain on the receiving side, not just its content. See
atomic clone --all-viewsto reconstruct the full set of views locally.
Arguments
[REMOTE]
Remote name or URL to push to. Passed positionally. If not specified, the default remote configured in the repository is used.
# Push to default remote
atomic push
# Push to named remote
atomic push origin
# Push to a URL
atomic push ssh://user@host/path/to/repo
Options
--to-view <TO_VIEW>
Remote view to push to.
atomic push origin --to-view main
--from-view <FROM_VIEW>
Local view to push from. For a draft view this pushes its full effective change set (own changes plus the inherited shared base), so the remote receives a complete graph.
atomic push --from-view feature-new-ui
-n, --dry-run
Show what would be pushed without actually pushing.
atomic push --dry-run
-f, --force
Force push even if histories have diverged.
atomic push --force
-a, --all
Push all changes, not just those missing on the remote.
atomic push --all
-k, --insecure
Skip TLS certificate verification.
atomic push -k https://insecure-server/repo
--timeout <TIMEOUT>
Request timeout in seconds. Defaults to 30.
atomic push --timeout 60
--identity <IDENTITY>
Identity to use for authentication.
atomic push --identity work
Global Options
-v, --verbose— Emit extra diagnostic output.--no-color— Disable ANSI color in output.-h, --help— Print help.
Examples
Basic Push
# Push current view to default remote
atomic push
# Push to a named remote
atomic push origin
# Push from a specific local view
atomic push --from-view feature-auth
Pushing Between Views
# Push the local feature view to the remote main view
atomic push origin --from-view feature-ready --to-view main
Previewing and Forcing
# Preview what would be pushed
atomic push origin --dry-run
# Push everything, forcing past divergence
atomic push origin --all --force
Authentication and Transport
# Use a specific identity
atomic push origin --identity work
# Increase the request timeout
atomic push origin --timeout 60
# Push to a custom remote URL
atomic push ssh://backup@server/repos/project
See Also
atomic pull- Pull changes from a remoteatomic clone- Clone a remote repositoryatomic remote- Manage remotesatomic view- Manage views