Artikelversion: Enterprise Server 2.17
Commits per Push-Vorgang an ein Remote-Repository übertragen
Mit „git push“ können Sie Commits, die auf Ihrem lokalen Branch erstellt wurden, an ein Remote-Repository pushen.
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>
Sie führen git push origin master
beispielsweise in der Regel aus, um Ihre lokalen Änderungen an Ihr Online-Repository zu pushen.
Branches umbenennen
Um einen Branch umzubenennen, verwenden Sie den gleichen git push
-Befehl, aber in diesem Fall fügen Sie ein weiteres Argument hinzu: den Namen des neuen Branches. Ein Beispiel:
git push <REMOTENAME> <LOCALBRANCHNAME>:<REMOTEBRANCHNAME>
Dadurch wird der LOCALBRANCHNAME
an Ihren REMOTENAME
gespusht, aber er wird umbenannt in REMOTEBRANCHNAME
.
„Non-Fast-Forward“-Fehler handhaben
Wenn Ihre lokale Kopie eines Repositorys nicht mit dem vorgelagerten Repository synchronisiert ist, an das Sie pushen, erhalten Sie die Meldung non-fast-forward updates were rejected
. Das bedeutet, dass Sie die vorgelagerten Änderungen abrufen müssen, bevor Sie Ihre lokalen Änderungen pushen können.
Weitere Informationen zu diesem Fehler finden Sie 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 pushen, können Sie den gleichen Befehl wie beim Push eines Branches ausführen:
git push <REMOTENAME> <TAGNAME>
Zum Pushen aller Ihrer Tags können Sie 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>
Beachten Sie, dass vor dem Doppelpunkt ein Leerzeichen steht. Der Befehl ähnelt den gleichen Schritten, die Sie beim Umbenennen eines Branches ausführen. Hier befehlen Sie Git jedoch, nichts in BRANCHNAME
an REMOTENAME
zu pushen. Aus diesem Grund löscht git push
den Branch im Remote-Repository.
Remotes und Forks
Sie wissen vielleicht schon, dass Sie auf GitHub Repositorys „forken“ können.
Wenn Sie ein eigenes Repository klonen, stellen Sie ihm eine Remote-URL zur Verfügung, die Git wissen lässt, wo Updates abgerufen und gepusht werden sollen. Wenn Sie mit dem ursprünglichen Repository zusammenarbeiten möchten, fügen Sie Ihrem lokalen Git-Klon eine neue Remote-URL hinzu, die typischerweise upstream
genannt wird:
git remote add upstream <THEIR_REMOTE_URL>
Nun können Sie Updates und Branches aus ihrem Fork abrufen:
git fetch upstream
# Rufen Sie 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 Sie mit den lokalen Änderungen fertig sind, können Sie Ihren lokalen Branch an GitHub pushen und einen Pull Request initiieren.
Weitere Informationen zur Arbeit mit Forks finden Sie unter „Fork synchronisieren“.