Git Push
Zuletzt aktualisiert
git push lädt die Commits deines lokalen Branches zu seinem Remote-Gegenstück hoch (wie GitHub). Sobald ein Branch einen Upstream gesetzt hat, genügt ein einfaches git push; der erste Push eines neuen Branches verwendet -u, um den Remote-Branch zu erstellen und das Tracking einzurichten, sodass künftige Pushes und Pulls keine Argumente benötigen.
Probiere diese im Terminal-Playground aus - eine echte Shell in deinem Browser, nichts zu installieren.
Syntax
| Command | What it does |
|---|---|
git push | Pusht den aktuellen Branch zu seinem Upstream |
git push -u origin feature | Pusht einen neuen Branch und setzt den Upstream |
git push origin main | Pusht zu einem bestimmten Remote und Branch |
git push --tags | Pusht alle lokalen Tags |
git push --force-with-lease | Sicherer Force Push nach einem Rebase |
Häufige Fälle
| Goal | Command |
|---|---|
| Einen brandneuen Branch pushen | git push -u origin feature |
| Pushen, nachdem der Upstream gesetzt ist | git push |
| Einen einzelnen Tag pushen | git push origin v1.0.0 |
| Einen Remote-Branch löschen | git push origin --delete feature |
Praxisbeispiel
| Schritt | Befehl | Ergebnis |
|---|---|---|
| 1 | git remote add origin <url> | Verbindet das lokale Repository unter dem Namen origin mit dem Remote |
| 2 | git push -u origin main | Legt main auf dem Remote an und setzt es als Upstream deines lokalen main |
| 3 | git push | Jeder spätere Push auf main braucht keine Argumente |
git push FAQ
Was macht git push?
Er schickt die Commits, die dein lokaler Branch hat und dem Remote-Branch fehlen, und zieht den Remote-Branch dann auf denselben Stand nach. Hochgeladen werden nur Commits: Nicht committete Änderungen bleiben auf deinem Rechner, also committe zuerst. Hat das Remote Commits, die dir fehlen, wird der Push abgelehnt, bis du pullst oder rebasest.
Wie pushe ich einen neuen Branch zum Remote?
Führe
git push -u origin <branch> aus. Das -u (Kurzform für --set-upstream) erstellt den Branch auf dem Remote und verknüpft deinen lokalen Branch damit, sodass danach ein einfaches git push und git pull ohne Argumente funktionieren. Der Remote-Branch existiert erst mit diesem ersten Push.Warum sagt git push 'no upstream branch'?
Dein lokaler Branch ist noch nicht mit einem Remote-Branch verknüpft. Pushe ihn mit
git push -u origin <branch>, um den Remote-Branch zu erstellen und den Upstream zu setzen. Danach weiß git push allein, wohin die Commits gesendet werden sollen.Wie pushe ich Tags?
Tags werden standardmäßig nicht gepusht. Pushe einen einzelnen Tag mit
git push origin <tagname> oder alle auf einmal mit git push --tags. Das ist eine häufige Stolperfalle - ein lokal erstellter Tag erscheint erst auf dem Remote, wenn du ihn ausdrücklich pushst.Wie mache ich einen Force Push sicher?
Nachdem du die History umgeschrieben hast (ein Rebase oder Amend), verwende
git push --force-with-lease statt --force. Es überschreibt das Remote nur, wenn seit deinem letzten Fetch niemand anderes gepusht hat, und schützt so die Arbeit der Teamkollegen. Auf der Seite git force push findest du die vollständige Erklärung.Was bedeutet git push -u origin main?
origin ist das Remote (siehe git remote), main ist der Branch, und -u setzt diesen Remote-Branch als Upstream deines lokalen main. Genau diesen Befehl zeigt GitHub bei einem neuen Repository an: Nachdem er einmal gelaufen ist, brauchen git push und git pull auf main keine Argumente mehr.Was ist der Unterschied zwischen git push und git pull?
Sie bewegen Commits in entgegengesetzte Richtungen.
git push lädt deine lokalen Commits auf das Remote hoch; git pull lädt die neuen Commits des Remotes herunter und führt sie in deinen Branch zusammen. Wird ein Push als non-fast-forward abgelehnt, musst du meist zuerst pullen. Was pull dabei im Hintergrund macht, steht unter git fetch vs pull.Kann ich das online üben?
Ja. Öffne den Terminal-Playground, um
git push in einer echten Shell in deinem Browser auszuführen - nichts zu installieren. Coddys kostenloser interaktiver Git-Kurs behandelt außerdem Schritt für Schritt das Arbeiten mit Remotes.