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:

  1. Erstellen Sie das Repository auf GitHub (falls zutreffend).
  2. Kopieren Sie die angegebene URL in der Form https://github.com/USERNAME/REPO_NAME.git
  3. 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
  4. 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.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow