Skip to main content

atomic git

Git interoperability commands.

Synopsis​

atomic git <SUBCOMMAND>
atomic git import [--dry-run] [-b <BRANCH>] [--all] [--incremental] [-k <KIND>] [--no-vault] [--with-crdt] [--stream | --no-stream] [--stream-window-mib <MIB>] [--agent-mode]
atomic git push [-m <MESSAGE>] [--no-push] [--remote <REMOTE>] [-b <BRANCH>] [--allow-conflict-markers]
atomic git hooks <SUBCOMMAND>
atomic git shim <SUBCOMMAND>

Description​

atomic git bridges Atomic and Git repositories in two directions:

  • git import — bring an existing Git repository into Atomic: each Git commit becomes an Atomic change, preserving history. Run it inside a Git checkout to create the Atomic repository alongside.
  • git push — push Atomic's state out to Git as a regular commit, enabling Git shadow sync: your Atomic work appears on the Git remote (e.g. GitHub) without Git ever being the system of record.
  • git hooks — manage the advisory shim post-checkout dispatcher: the Git-side entry point that notices checkouts so the shim can reconcile.
  • git shim — the colocated Git shim (Atomic 0.20.0+): reconcile, verify, switch, publish, and bind Git HEAD ↔ Atomic view state. See git shim.

Subcommands​

git import — Import a Git Repository​

Synopsis​

atomic git import [OPTIONS]

Run inside a Git checkout. Each commit on the imported branch becomes an Atomic change on a view.

A fresh repository imports through the rolling stream by default: first-parent history as graph-only changes, with a live dashboard when stdout is a terminal. It verifies the final Git tree rather than every historical state and does not synthesize historical CRDT identities. --no-stream selects the ordinary importer — the path with full semantic lifecycle support, and the one --with-crdt, --incremental, --all, and imports into an existing Atomic repository already take.

Options​

OptionDescription
--dry-runPreview what would be imported without creating an Atomic repository
-b, --branch <BRANCH>Import a specific branch instead of the default branch
--all (alias --all-branches)Import all local branches as separate views
--incrementalOnly import commits not already in Atomic
-k, --kind <KIND>Project kind for the .atomicignore template
--no-vaultSkip vault initialization
--with-crdtEagerly build the semantic (Trunk → Branch → Leaf) layer during import; selects the ordinary importer
--streamForce the rolling first-parent graph stream. Conflicts with --no-stream, --with-crdt, --incremental, and --all
--no-streamUse the ordinary importer instead of the default rolling stream. Conflicts with --stream
--stream-window-mib <MIB>MiB budget for queued Git blob reservations and prepared stream batches (default 32, range 1–256). Not a total process-memory limit. Requires a streaming import
--agent-modeA special mode for agents doing the importing

Examples​

# Preview the import first
atomic git import --dry-run

# Import the default branch (creates Atomic repo + vault)
atomic git import

# Import everything, each branch becoming a view
atomic git import --all

# Re-run later to pick up new commits
atomic git import --incremental

# Force the ordinary importer on a fresh repository
atomic git import --no-stream

# Raise the stream's memory window for a blob-heavy history
atomic git import --stream-window-mib 128

git push — Push Atomic State to Git​

Synopsis​

atomic git push [OPTIONS]

Synthesizes a Git commit from the current Atomic view's state (message synthesized from change messages unless -m is given), commits it on the current branch, and pushes to the remote.

Options​

OptionDescription
-m, --message <MESSAGE>Custom commit message. If not provided, synthesizes from Atomic change messages
--no-pushDon't push to remote after committing
--remote <REMOTE>Remote name to push to (default: origin)
-b, --branch <BRANCH>Target branch to push to on the remote. Defaults to the current branch. The commit is still created on the current branch; this only changes the remote destination (useful for pushing the current view's state to a PR branch)
--allow-conflictsExplicitly allow exporting a view with unresolved Atomic conflicts to a remote (RFC §8.3, CB-8B). Refused by default for every remote export. The flag does NOT bypass any other gate: the complete conflict-object pack must already be published and verify against the current conflict set, and signing, trust, lease, and publication policy all still apply. Never passed by automation
--allow-conflict-markersCommit even if the working copy still contains unresolved conflict markers. Off by default, mirroring atomic record; the shadow-sync turn-end hook must never pass this

Examples​

# Commit + push the current view's state to origin
atomic git push

# Push the current view's state to a PR branch
atomic git push -b feature/token-refresh

# Commit locally only
atomic git push --no-push -m "sync checkpoint"

git hooks — Manage the Advisory Shim Dispatchers​

Synopsis​

atomic git hooks <SUBCOMMAND>

Subcommands​

SubcommandDescription
installInstall or refresh the advisory shim dispatchers
uninstallRemove every Atomic-owned shim dispatcher (foreign hooks are kept)
statusShow advisory shim hook status
atomic git hooks install
atomic git hooks status
atomic git hooks uninstall

The dispatchers are advisory: they notice Git checkout events so the shim can reconcile on demand; they do not silently rewrite either side. See git shim for the reconciliation commands they feed.

See Also​

  • git shim — colocated shim: reconcile, verify, publish, bindings
  • op — the immutable operation journal shim metadata is recorded into
  • pull / push — Atomic-native remote sync
  • clone — Clone a remote Atomic repository
  • Git Shim guide — Verified Git interop walkthrough
  • migrating-from-git guide — Import walkthrough