Ich habe diese Nachricht von Git erhalten:
Sie haben gefragt, ob Sie vom Remote-Ursprung abrufen möchten, haben jedoch keinen Zweig angegeben. Da dies nicht die standardmäßig konfigurierte Fernbedienung für Ihren aktuellen Zweig ist, müssen Sie einen Zweig in der Befehlszeile angeben.
Kann es jemand erklären? und wichtiger, wie man es behebt?
git pull
zieht und verschmilzt mit dem aktuellen Zweig, sodass sein Verhalten vollständig davon abhängt, welcher Zweig ausgecheckt ist. Bei einem getrennten HEAD (kein Zweig ausgecheckt) kann er nicht wissen, welcher Zweig gezogen werden soll.Um dies zu beheben, setzen Sie voraus, dass Sie sich auf dem
master
Zweig befinden und denmaster
Zweig von derorigin
Fernbedienung abrufen möchten , und zwar in ausreichend neuen Git-Versionen (1.8 oder neuer):(Analog für andere Zweige und / oder Fernbedienungen.)
Wenn Sie dies mit einem Push kombinieren können, ist es noch kürzer:
Danach wird eine Ebene
git pull
/git push
tun, was Sie erwarten.Während der Git 1.7-Serie gab
git branch
es keinen-u
Schalter (nurgit push
), stattdessen musste man den viel längeren verwenden--set-upstream
:Beachten Sie die Umkehrung der Argumente im Vergleich zu
-u
. Ich habe diese Bestellung mehr als einmal gefummelt.All dies sind übrigens Abkürzungen für Folgendes, was Sie noch explizit tun können:
Vor 1.7 mussten Sie dies so tun.
quelle
git branch --set-upstream master origin/master
-u
Optiongit branch
in meiner Version 1.8.5.3 nicht dokumentiert, was Ihre Dokumentation hier noch wichtiger macht. Und wie Sie bemerken, war die Option in Version 1.7 nicht verfügbar. *. Da-u
kurz ist--set-upstream
, sollte nicht die Reihenfolge der Argumente umgekehrt werden , wie sie tat--set-upstream
aufgrund @ EvanDonovan Kommentar?git branch -u origin/master master
) verwende, funktioniert er wie erwartet / beabsichtigt für mich: "Zweigstellenmaster eingerichtet, um den Remote-Zweigstellenmaster vom Ursprung aus zu verfolgen."-u
Schalter ist eigentlich nicht die Kurzform von--set-upstream
. Die Reihenfolge der Argumente ist effektiv umgekehrt zu der Reihenfolge für--set-upstream
. Ich denke, es war erst später, dass--set-upstream-to
(beachten Sie das "-to") eingeführt wurde, was-u
jetzt eigentlich die Kurzform von ist.Nachricht sagt genau, worum es geht. Ihr aktueller Zweig ist keinem Zweig im Ursprung zugeordnet (verfolgt ihn nicht) . Also weiß Git nicht, was er ziehen soll.
Was ist zu tun? Kommt darauf an...
In den meisten Fällen arbeiten Sie an einem lokalen Zweig xyz, der vom Master verzweigt ist, der vom Master des Ursprungs geklont wurde . Der übliche Weg, dies zu beheben, besteht darin, zu Master zu wechseln und zu ziehen, um es mit dem Ursprung zu synchronisieren, und dann zu xyz und zurückzukehren
rebase master
.Aber in Ihrer Situation möchten Sie vielleicht etwas anderes tun. Wir können es nicht wissen, ohne die Details Ihrer Filialen und Fernbedienungen zu kennen und wie Sie sie verwenden möchten.
quelle