Selbst nachdem ich diese Frage gelesen habe: git-push-current-branch , habe ich immer noch Schwierigkeiten herauszufinden, wie ich meinen git push-Befehl schreiben soll. Wie im Fragenlink erwähnt, ist dies aus der Dokumentation nicht ersichtlich.
Ich möchte mein Beispiel aus der realen Welt verwenden. Folgendes sehe ich, wenn ich einen git status
Befehl auf der obersten Ebene meines Zweigs ausführe:
Auf Zweig amd_qlp_tester
Ihre Filiale liegt 5 Commits vor 'origin / amd_qlp_tester'.
etc...
Mein Filialname ist also, amd_qlp_tester
aber er wurde vom Hauptzweig "verzweigt" (wenn ich die Begriffe falsch habe, liegt das an meinem SVN-Hintergrund). Dann gibt es aber auch den Namen "origin / amd_qlp_testser".
Wie formuliere ich meinen Push-Befehl?
Ist es eine der folgenden:
git push origin/amd_qlp_tester
git push origin amd_qlp_tester
git push amd_qlp_tester
git push origin
git push
quelle
origin amd_qlp_testser
und nichtorigin/amd_qlp_tester
origin
). Die Verzweigung (en), in die die Standardeinstellungen (in aktuellen Versionen von git):
verschoben werden sollen, wenn nicht festgelegt, was bedeutetmatching
, dass sich dies jedoch in Zukunft ändern soll.git push
wird versucht, alle verfolgten Zweige zu verschieben, entgegen Ihrer Aussage ("die Fernbedienung des aktuellen Zweigs ist der Standardwert").simple
Push-Strategie verwenden, was bedeutet, dass nur der aktuelle Zweig gepusht wird. blogs.atlassian.com/2014/06/happened-git-2-0-full-goodiesfatal: Couldn't find remote ref branch-name-here
Wenn Ihr lokaler Zweig und Ihr Remote-Zweig denselben Namen haben, können Sie dies einfach tun:
Wenn sich Ihr lokaler und der Remote-Zweigstellenname unterscheiden, können Sie dies einfach tun:
quelle
Bei den Antworten, auf die Sie verlinkt haben, geht es darum, git so zu konfigurieren, dass Sie sehr kurze
git push
Befehle eingeben und sie tun lassen können, was Sie wollen. Was großartig ist, wenn Sie wissen, was Sie wollen und wie man das in Git-Ese buchstabiert, aber Sie sind neu in Git! :-)In Ihrem Fall ist die Antwort von Petr Mensik die ( na ja , "a") richtige. Hier ist der Grund:
Der Befehl wurzelt in Ihrer Datei, um den Namen "remote" zu finden (z . B. ). Die Konfigurationsdatei listet auf:
git push remote
.git/config
origin
ssh://hostname/path
git fetch remote
Als Sie das Repo zum ersten Mal geklont haben - wann immer dies der Fall war - hat git für einige davon Standardwerte festgelegt. Die URL ist , was auch immer Sie geklont aus und der Rest, wenn sie gesetzt oder ungesetzt werden alle „vernünftigen“ defaults ... oder, hmm, sind sie?
Das Problem dabei ist, dass die Menschen im Laufe der Zeit ihre Meinung darüber geändert haben, was "vernünftig" ist. Daher kann Git jetzt (abhängig von Ihrer Version von git und davon, ob Sie die Dinge im Detail konfiguriert haben) viele Warnungen über zukünftige Standardeinstellungen drucken. Durch Hinzufügen des Namens des "zu drückenden Zweigs" -
amd_qlp_tester
- (1) wird dieser geschlossen, und (2) wird nur dieser eine Zweig gedrückt.Wenn Sie bequemer pushen möchten, können Sie dies tun mit:
oder auch:
Ob dies jedoch das tut, was Sie wollen, hängt davon ab, ob Sie "frühen Git-Autoren" zustimmen, dass die ursprünglichen Standardeinstellungen angemessen sind, oder "späteren Git-Autoren", dass die ursprünglichen Standardeinstellungen nicht angemessen sind. Wenn Sie also (eventuell) alle Konfigurationsaufgaben erledigen möchten, lesen Sie die Frage (und Antworten), mit denen Sie verknüpft sind.
Was den Namen
origin/amd_qlp_tester
an erster Stelle betrifft: Das ist eigentlich eine lokale Entität (ein Name, der in Ihrem Repo aufbewahrt wird), obwohl er als "Remote-Zweig" bezeichnet wird. Es ist die beste Vermutung von git, "woamd_qlp_tester
ist da drüben". Git aktualisiert es, wenn es kann .quelle
git push origin amd_qlp_tester
bis ich etwas Fortgeschritteneres tun muss :)Ich möchte eine aktualisierte Antwort hinzufügen - jetzt benutze ich git für eine Weile und stelle fest, dass ich häufig die folgenden Befehle verwende, um Pushs durchzuführen (am Beispiel der ursprünglichen Frage):
git push origin amd_qlp_tester
- Drücken Sie auf den Zweig in der Fernbedienung, derorigin
auf dem angerufenen Fernzweig aufgerufen wirdamd_qlp_tester
.git push -u origin amd_qlp_tester
- Wie beim letzten, jedoch wird der Upstream festgelegt, der den lokalen Zweig mit dem Remote-Zweig verbindet, sodass Sie ihn beim nächsten Mal nur verwenden können,git push/pull
wenn er noch nicht verbunden ist (dies muss nur einmal durchgeführt werden).git push
- Sobald Sie den Upstream eingestellt haben, können Sie einfach diese kürzere Version verwenden.Hinweis
-u
Option ist die Kurzversion von--set-upstream
- sie sind gleich.quelle