INTERACTIVE EXPLAINER · EXP-0048 LAYERS · 24 COMPONENTS

EXPLODED INTERACTIVE · GIT PUSH

What happens when you git push?

Follow one commit from git push origin HEAD through refspecs, objects, a thin pack, HTTPS auth, receive-pack, and the ref update, then watch the status line come back.

8 LAYERS / 24 COMPONENTS

Operate the git-push journey

START HERE
Follow one push, step by step

Press Start tour to follow a typical HTTPS push of one commit from the command line to the remote ref moving. Each stop opens the component responsible for that part of the trip.

Exploded view: What happens when you git push?Interactive layers show a git push moving from the command line through objects, a pack, HTTPS authentication, and receive-pack. Status returns after the remote ref updates.PUSH PATH DOWN / STATUS PATH BACK08 LAYERS · NOT TO SCALESTATUS PATHPUSHSTAT
PUSH PATH STATUS PATH

The porcelain command chooses the remote and the refs, then may run a client hook.

git push reads the command line, remote.<name>.push, or push.default. It expands HEAD into a src:dst refspec and runs pre-push before send-pack talks to the network.

Command
git push
translate mechanism schematicA command line becomes remote plus source.
  1. 01argv
  2. 02remote
  3. 03src token
  4. 04handoff
A command line becomes remote plus source.
COMPONENT / PUSH

git push CLI

Reading the animation: A command line becomes a remote name and a source token.

Parses the command and chooses remote plus what to send.

WORKED EXAMPLE

One command starts the specimen push

git push origin HEAD
Remote
origin
Src token
HEAD
push.default
simple (unused here)
Dry-run?
no

git push is porcelain. With origin HEAD it uses the named remote and the current branch. Default push.default since Git 2.0 is simple: same-name current branch when you omit the ref.

In engineering terms: The git push CLI is that clerk. It has not opened the envelope or walked to the other building.

FOLLOW THIS EXAMPLE

  1. 01

    Parse repository and ref arguments.

  2. 02

    Resolve origin to its push URL.

  3. 03

    Take HEAD as the source token.

  4. 04

    Pass control to refspec expansion.

Measurements, controls, and tradeoff
Useful evidence
Unexpected current branch, push.default surprises, and --dry-run still touching hooks.
Controls
push.default, remote.<name>.pushurl, and --dry-run.
Tradeoff
Omitting the ref is shorter and also depends on push.default, which has changed meaning across Git versions.
Invocation
origin HEAD
Definitions and sources

TERMS IN THIS VIEW

Porcelain
A user-facing Git command such as git push. It decides policy, then calls plumbing commands to move objects and refs.
Remote
A named repository URL, usually origin. pushurl can differ from the fetch URL.
Refspec
A src:dst pair that names which local ref to send and which remote ref to update. A leading + forces that one ref.

SOURCES + CONTINUE READING

  1. [01]git-pushGit
  2. [02]git-configGit

Why it matters: If this layer picks the wrong dst, later layers will faithfully update the wrong remote branch.

Definitions for this layer

TERMS IN THIS VIEW

Porcelain
A user-facing Git command such as git push. It decides policy, then calls plumbing commands to move objects and refs.
Refspec
A src:dst pair that names which local ref to send and which remote ref to update. A leading + forces that one ref.
pre-push
A client hook that runs before anything is sent. Non-zero exit aborts the push.
Remote
A named repository URL, usually origin. pushurl can differ from the fetch URL.
ZACKPROSER.COM / EXPLODEDzackproser.com/demos/what-happens-when-you-git-pushUPDATED 2026.08.21
Complete exploded diagram of git push

Take the whole push path with you

Every layer and component is expanded in one high-resolution diagram for teaching, reference, and sharing.

Resolution
2400 × 3000 PNG
Contents
8 layers · 24 components
Attribution
URL included in the image

Trace the systems on either side

EXPLODED INTERACTIVEWhat happens when you fetch a URL?

The same HTTPS trip — DNS, TLS, and the origin — that carries git-receive-pack after the pack is built.

EXPLODED INTERACTIVEWhat happens when an agent calls a tool?

When the caller is an agent, follow the tool_use block through permission, credentials, and the observation that comes back.

EXPLODED INTERACTIVEHow an AI response gets made

Follow a model request through routing, scheduling, engines, memory, kernels, and GPU hardware.