Suche…
Einführung
Nach dem Ändern, Staging und Festlegen von Code mit Git ist Push erforderlich, um Ihre Änderungen für andere verfügbar zu machen und Ihre lokalen Änderungen an den Repository-Server zu übertragen. In diesem Thema wird beschrieben, wie Sie den Code mithilfe von Git ordnungsgemäß pushen.
Syntax
- git push [-f | --force] [-v | --verbose] [<remote> [<refspec> ...]]
Parameter
Parameter | Einzelheiten |
---|---|
--Macht | Überschreibt den Remote-Ref entsprechend Ihrem lokalen Ref. Kann dazu führen, dass das Remote-Repository Commits verliert, verwenden Sie es daher mit Vorsicht . |
--verbose | Laufen Sie wortreich. |
<remote> | Das entfernte Repository, das das Ziel der Push-Operation ist. |
<refspec> ... | Geben Sie an, welcher Remote-Ref mit welchem lokalen Ref oder Objekt aktualisiert werden soll. |
Bemerkungen
Upstream & Downstream
In Bezug auf die Quellcodeverwaltung sind Sie "Downstream", wenn Sie aus einem Repository kopieren (Klonen, Auschecken usw.). Informationen flossen "stromabwärts" zu Ihnen.
Wenn Sie Änderungen vornehmen, möchten Sie sie normalerweise "Upstream" zurückschicken, damit sie in das Repository gelangen, sodass alle, die aus derselben Quelle ziehen, mit den gleichen Änderungen arbeiten. Dies ist meistens eine soziale Frage, wie jeder seine Arbeit koordinieren kann, und nicht eine technische Anforderung an die Quellcodeverwaltung. Sie möchten, dass Ihre Änderungen in das Hauptprojekt übernommen werden, sodass Sie keine abweichenden Entwicklungslinien verfolgen.
Manchmal lesen Sie über Paket- oder Release-Manager (die Personen, nicht das Tool), die über das Senden von Änderungen an "Upstream" sprechen. Das bedeutet normalerweise, dass sie die Originalquellen anpassen mussten, um ein Paket für ihr System erstellen zu können. Sie möchten diese Änderungen nicht fortsetzen. Wenn sie also "Upstream" an die ursprüngliche Quelle gesendet werden, sollten sie sich in der nächsten Version nicht mit demselben Problem befassen müssen.
( Quelle )
drücken
git push
wird Ihren Code zu Ihrem vorhandenen Upstream pushen. Abhängig von der Push-Konfiguration wird entweder Code von Ihrem aktuellen Zweig (Standard in Git 2.x) oder von allen Zweigen (Standard in Git 1.x) übertragen.
Remote-Repository angeben
Wenn Sie mit git arbeiten, kann es praktisch sein, mehrere Remote-Repositorys zu haben. Um ein Remote-Repository anzugeben, an das Push gesendet werden soll, hängen Sie einfach den Namen an den Befehl an.
git push origin
Niederlassung angeben
Um zu einem bestimmten Zweig zu gelangen, sagen Sie feature_x
:
git push origin feature_x
Legen Sie den Remote-Tracking-Zweig fest
Wenn der Zweig, an dem Sie gerade arbeiten, ursprünglich aus einem Remote-Repository stammt, funktioniert die Verwendung von git push
nicht beim ersten Mal. Sie müssen den folgenden Befehl ausführen, um git mitzuteilen, dass der aktuelle Zweig auf eine bestimmte Remote- / Zweigkombination verschoben werden soll
git push --set-upstream origin master
master
ist hier der Zweigname des entfernten origin
. Sie können -u
als Abkürzung für --set-upstream
.
In ein neues Repository verschieben
Um zu einem Repository zu gelangen, das Sie noch nicht erstellt haben oder leer sind:
- Erstellen Sie das Repository auf GitHub (falls zutreffend).
- Kopieren Sie die angegebene URL in der Form
https://github.com/USERNAME/REPO_NAME.git
- Wechseln Sie zu Ihrem lokalen Repository und führen Sie
git remote add origin URL
- Um zu überprüfen, ob es hinzugefügt wurde, führen Sie
git remote -v
- Um zu überprüfen, ob es hinzugefügt wurde, führen Sie
- Führen Sie
git push origin master
Ihr Code sollte sich jetzt auf GitHub befinden
Weitere Informationen finden Sie unter Hinzufügen eines Remote-Repositorys
Erläuterung
Push-Code bedeutet, dass git die Unterschiede zwischen Ihren lokalen Commits und Remote analysiert und diese an den Upstream-Server sendet. Wenn Push erfolgreich ist, werden Ihr lokales Repository und Ihr Remote-Repository synchronisiert, und andere Benutzer können Ihre Commits sehen.
Weitere Informationen zu den Konzepten "vorgelagert" und "nachgelagert" finden Sie unter Anmerkungen .
Zwangsschub
Wenn Sie lokale Änderungen haben, die nicht mit Remote-Änderungen kompatibel sind (z. B. wenn Sie den Remote-Zweig nicht schnell vorspulen können oder der Remote-Zweig kein direkter Vorfahre Ihres lokalen Zweigs ist), können Sie die Änderungen nur durch einen Push-Befehl erzwingen .
git push -f
oder
git push --force
Wichtige Notizen
Dadurch werden alle Änderungen an der Fernbedienung überschrieben, und Ihre Fernbedienung passt zu Ihrer lokalen.
Achtung: Die Verwendung dieses Befehls kann dazu führen, dass das Remote-Repository Commits verliert . Darüber hinaus wird dringend davon abgeraten, einen Force-Push durchzuführen, wenn Sie dieses Remote-Repository mit anderen teilen, da deren Historie jedes überschriebene Commit beibehält und somit die Arbeit mit dem Remote-Repository nicht mehr synchron ist.
Als Faustregel gilt: Nur wenn:
- Niemand außer Sie haben die Änderungen übernommen, die Sie überschreiben möchten
- Sie können jeden zwingen, nach dem erzwungenen Druck eine neue Kopie zu kopieren, und alle Änderungen daran vornehmen (die Leute mögen Sie dafür hassen).
Schieben Sie ein bestimmtes Objekt an einen entfernten Zweig
Allgemeine Syntax
git push <remotename> <object>:<remotebranchname>
Beispiel
git push origin master:wip-yourname
wip-yourname
Ihren Master-Zweig zum Ursprungszweig " wip-yourname
(meistens aus dem Repository, aus dem Sie geklont haben).
Entfernten Zweig löschen
Das Löschen des entfernten Zweigs entspricht einem leeren Objekt.
git push <remotename> :<remotebranchname>
Beispiel
git push origin :wip-yourname
Löscht den entfernten Zweig wip-yourname
Anstelle des Doppelpunkts können Sie auch das Flag --delete verwenden, das in manchen Fällen besser lesbar ist.
Beispiel
git push origin --delete wip-yourname
Drücken Sie ein einzelnes Commit
Wenn Sie in Ihrem Zweig ein einziges Commit haben, das Sie an eine Remote verschieben möchten, ohne etwas anderes zu drücken, können Sie Folgendes verwenden
git push <remotename> <commit SHA>:<remotebranchname>
Beispiel
Angenommen, eine Git-Geschichte wie diese
eeb32bc Commit 1 - already pushed
347d700 Commit 2 - want to push
e539af8 Commit 3 - only local
5d339db Commit 4 - only local
Verwenden Sie den folgenden Befehl, um nur den Commit 347d700 an den Remote- Master zu übergeben
git push origin 347d700:master
Ändern des Standard-Push-Verhaltens
Current aktualisiert den Zweig des Remote-Repositorys, der einen Namen mit dem aktuellen Arbeitszweig teilt.
git config push.default current
Einfache Pushs an den Upstream-Zweig, funktionieren jedoch nicht, wenn der Upstream-Zweig anders bezeichnet wird.
git config push.default simple
Upstream schiebt in den Upstream-Zweig, egal wie er genannt wird.
git config push.default upstream
Beim Matching werden alle Zweige, die auf der lokalen und der fernen git config push.default übereinstimmen, in den Upstream verschoben
Nachdem Sie den bevorzugten Stil festgelegt haben, verwenden Sie
git push
um das entfernte Repository zu aktualisieren.
Tags drücken
git push --tags
Schickt alle git tags
im lokalen Repository, die sich nicht im fernen befinden.