Der Befehl git push
hat zwei Argumente:
- einen Remote-Namen, z. B.
origin
- einen Branch-Namen, z. B.
master
Ein Beispiel:
git push <REMOTENAME> <BRANCHNAME>
Ein Beispiel: Normalerweise führst Du git push origin master
aus, um Deine lokalen Änderungen an Dein Online-Repository zu übertragen.
Branches umbenennen
Um einen Branch umzubenennen, verwendest Du den gleichen git push
-Befehl, aber in diesem Fall fügst Du ein weiteres Argument hinzu: den Namen des neuen Branches. Ein Beispiel:
git push <REMOTENAME> <LOCALBRANCHNAME>:<REMOTEBRANCHNAME>
Dadurch wird der LOCALBRANCHNAME
an Deinen REMOTENAME
übertragen, aber er wird umbenannt in REMOTEBRANCHNAME
.
„Non-Fast-Forward“-Fehler handhaben
Wenn Deine lokale Kopie eines Repositorys nicht mit dem vorgelagerten Repository synchronisiert ist, an das Du überträgst, erhältst Du die Meldung non-fast-forward updates were rejected
('non-fast-forward'-Aktualisierungen wurden zurückgewiesen). Das bedeutet, dass Du die vorgelagerten Änderungen abrufen musst, bevor Du Deine lokalen Änderungen übertragen 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 entsprechenden Branches, die den gleichen Namen wie Remote-Branches haben.
Um ein einzelnes Tag zu übertragen, kannst Du den gleichen Befehl wie beim Push eines Branches ausführen:
git push <REMOTENAME> <TAGNAME>
Zum Pushen aller Deiner Tags kannst Du folgenden Befehl eingeben:
git push <REMOTENAME> --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 <REMOTENAME> :<BRANCHNAME>
Beachte, dass vor dem Doppelpunkt ein Leerzeichen steht. Der Befehl ähnelt den gleichen Schritten, die Du beim Umbenennen eines Branches ausführst. Hier befiehlst Du Git jedoch, nichts in BRANCHNAME
an REMOTENAME
zu übertragen. Aus diesem Grund löscht git push
den Branch im Remote-Repository.
Remotes und Forks
Du weißt vielleicht schon, dass Du auf GitHub Repositorys „forken“ kannst.
Wenn Du ein eigenes Repository klonst, stellst Du ihm eine Remote-URL zur Verfügung, die Git wissen lässt, wo Aktualisierungen abgerufen und gepusht werden sollen. Wenn Du mit dem ursprünglichen Repository zusammenarbeiten möchtest, füge Deinem lokalen Git-Klon eine neue Remote-URL hinzu, die typischerweise upstream
genannt wird:
git remote add upstream <THEIR_REMOTE_URL>
Nun kannst Du Updates und Branches aus deren Fork abrufen:
git fetch upstream
# Rufe die Branches des vorgelagerten Remotes ab
> 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] master -> upstream/master
Wenn Du mit den lokalen Änderungen fertig bist, kannst Du Deinen lokalen Branch an GitHub übertragen und einen Pull Request initiieren.
Weitere Informationen zur Arbeit mit Forks findest Du unter „Fork synchronisieren“.