Skip to main content

Commits per Push-Vorgang an ein Remote-Repository übertragen

Mit git push kannst du Commits aus deinem lokalen Branch an ein Remoterepository pushen.

Informationen zum git push

Der Befehl git push akzeptiert zwei Argumente:

  • Einen Remotenamen (beispielsweise origin)
  • Einen Branchnamen (z. B. main)

Beispiel:

git push REMOTE-NAME BRANCH-NAME

Als Beispiel führst du in der Regel git push origin main aus, um deine lokalen Änderungen an dein Onlinerepository zu pushen.

Branches umbenennen

Um einen Branch umzubenennen, verwendest du den gleichen Befehl git push, fügst aber in diesem Fall ein weiteres Argument hinzu: den Namen des neuen Branches. Beispiel:

git push REMOTE-NAME LOCAL-BRANCH-NAME:REMOTE-BRANCH-NAME

Dadurch wird der LOCAL-BRANCH-NAME an deinen REMOTE-NAME gepusht, aber in REMOTE-BRANCH-NAME umbenannt.

„Non-Fast-Forward“-Fehler handhaben

Wenn deine lokale Kopie eines Repositorys mit dem Upstreamrepository, an das du überträgst, nicht synchronisiert ist oder älter als dieses ist, erhältst du die Meldung non-fast-forward updates were rejected. Das bedeutet, dass du die Änderungen im Upstreamrepository abrufen (fetchen) musst, bevor du deine lokalen Änderungen pushen kannst.

Weitere Informationen zu diesem Fehler findest du unter Non-Fast-Forward-Fehler handhaben.

Tags pushen

Standardmäßig und ohne zusätzliche Parameter sendet git push alle übereinstimmenden Branches, die den gleichen Namen wie Remotebranches haben.

Um ein einzelnes Tag zu übertragen, kannst du den gleichen Befehl wie beim Push eines Branches ausführen:

git push REMOTE-NAME TAG-NAME

Zum Pushen aller deiner Tags kannst du folgenden Befehl eingeben:

git push REMOTE-NAME --tags

Einen Remote-Branch oder ein Tag löschen

Die Syntax zum Löschen eines Branches ist auf den ersten Blick etwas irreführend:

git push REMOTE-NAME :BRANCH-NAME

Beachte, dass vor dem Doppelpunkt ein Leerzeichen steht. Der Befehl ähnelt den Schritten, die du beim Umbenennen eines Branches ausführst. Hier weist du Git jedoch an, nichts in BRANCH-NAME auf REMOTE-NAME zu pushen. Aus diesem Grund löscht git push den Branch im Remoterepository.

Remotes und Forks

Möglicherweise weißt du bereits, dass es auf GitHub möglich ist, Repositorys zu forken.

Wenn du ein eigenes Repository klonst, gibst du dafür eine Remote-URL an, die Git mitteilt, wo Updates gefetcht und gepusht werden sollen. Wenn du mit dem ursprünglichen Repository zusammenarbeiten möchtest, fügst du deinem lokalen Git-Klon eine neue Remote-URL hinzu, die normalerweise mit upstream bezeichnet wird:

git remote add upstream THEIR_REMOTE_URL

Nun kannst du Updates und Branches aus ihrem Fork fetchen:

git fetch upstream
# Grab the upstream remote's branches
> remote: Counting objects: 75, done.
> remote: Compressing objects: 100% (53/53), done.
> remote: Total 62 (delta 27), reused 44 (delta 9)
> Unpacking objects: 100% (62/62), done.
> From https://github.com/OCTOCAT/REPO
>  * [new branch]      main     -> upstream/main

Wenn du mit den lokalen Änderungen fertig bist, kannst du deinen lokalen Branch an GitHub pushen und einen Pull Request initiieren.

Weitere Informationen zum Arbeiten mit Forks findest du unter Einen Fork synchronisieren.

Weiterführende Themen