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://HOSTNAME/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.