Ich habe ein Git-Repository geklont und dann ein Tag ausgecheckt:
# git checkout 2.4.33 -b my_branch
Dies ist in Ordnung, aber wenn ich versuche, git pull
in meinem Zweig zu laufen , spuckt git diesen Fehler aus:
Es gibt keine Tracking-Informationen für den aktuellen Zweig. Bitte geben Sie an, mit welchem Zweig Sie zusammenführen möchten. Siehe Git-Pull (1) für Details
git pull <remote> <branch>
Wenn Sie Tracking-Informationen für diesen Zweig festlegen möchten, können Sie dies tun mit:
git branch --set-upstream new origin/<branch>
Ich möchte git pull
nur den Hauptzweig aktualisieren und meinen aktuellen Zweig in Ruhe lassen (es ist sowieso ein Tag). Ist so etwas möglich?
Der Grund, warum ich das brauche, ist, dass ich ein automatisches Skript habe, das immer das Repository abruft und natürlich aufgrund des obigen Fehlers fehlschlägt.
git
git-pull
git-checkout
Alesko
quelle
quelle
Antworten:
Bearbeiten: Für neuere Versionen von Git,
--set-upstream master
die veraltet sind, sollten Sie--set-upstream-to
stattdessen verwenden:Nach Aufforderung können Sie einfach Folgendes ausführen:
Danach können Sie einfach ausführen
git pull
, um Ihren Code zu aktualisieren.quelle
git checkout master
. Ich konnte es nicht tun,git pull
weil der Bezug zur Herkunft verloren ging. Jetzt gehts. Danke dir!Ich hatte das gleiche Problem und habe es mit diesem Befehl behoben:
Aus der Hilfedatei legt das -u im Grunde den Standard für Pulls fest:
quelle
Versuchen Sie diese Befehle:
quelle
Wechseln Sie mit zum Hauptzweig zurück
und führen Sie dann die
git pull
Operation ausDanach können Sie wieder zu Ihrem wechseln
my_branch
.quelle
@alesko : Es ist nicht möglich, nur
git pull
nach dem Auschecken nur den Zweigmy_branch
zu aktualisierenmaster
.Denn
git pull
wird auch mit dem aktuellen Zweig zusammengeführt -> in Ihrem Szenario zummy_branch
@ Simon : das macht auch den Push. warum ist das so?
und laut docs:
quelle
Stellen Sie zunächst sicher, dass Sie sich auf dem richtigen Ast befinden.
Dann (nur einmal):
Danach funktioniert das wieder:
quelle
Möglicherweise haben Sie mehrere Zweige. Und Ihre aktuelle Niederlassung hat ihren Upstream nicht in Remote eingestellt.
Schritte, um dies zu beheben:
z.B
Wenn Sie dies tun
git pull
, wird es aus dem angegebenen Zweig gezogen.quelle
Sie können angeben, welchen Zweig Sie ziehen möchten:
Oder Sie können es so einrichten, dass Ihr lokaler Hauptzweig den Github-Hauptzweig als Upstream verfolgt:
Diese Zweigstellenverfolgung wird automatisch für Sie eingerichtet, wenn Sie ein Repository klonen (nur für die Standardverzweigung). Wenn Sie jedoch einem vorhandenen Repository eine Fernbedienung hinzufügen, müssen Sie die Verfolgung selbst einrichten. Zum Glück macht es der Rat von git ziemlich einfach, sich daran zu erinnern, wie es geht.
--set-upstream ist in git 1.9.x anscheinend veraltet. In Zukunft möchten Sie so etwas wie verwenden
vorausgesetzt, Sie haben den Master bereits ausgecheckt. Wenn nicht,
git branch -u origin/master master
wird funktionierenquelle
Versuche dies
quelle
Sie müssen Ihr Tracking (Upstream) für den aktuellen Zweig einrichten
Ist bereits veraltet, stattdessen können Sie das Flag --track verwenden
Ich mag auch die Dokumentreferenz, die @casey bemerkt:
quelle
Was für mich funktioniert hat war: git branch --set-upstream-to = origin master Als ich wieder einen Pull machte, bekam ich nur die Updates vom Master und die Warnung ging weg.
quelle
Wenn Sie dies wie ich ständig tun müssen, können Sie einen Alias einrichten, um dies automatisch zu tun, indem Sie Ihrer
.gitconfig
Datei Folgendes hinzufügen :Wenn Sie die Nachricht sehen
There is no tracking information...
, nur laufengit set-upstream
, danngit push
wieder.Vielen Dank an https://zarino.co.uk/post/git-set-upstream/
quelle
Um nur Updates herunterzuladen:
Dadurch wird jedoch nur eine aufgerufene Referenz aktualisiert
origin/master
. Der beste Weg, um Ihr lokales zu aktualisieren,master
wäre das Auschecken / Zusammenführen, das in einem anderen Kommentar erwähnt wird. Wenn Sie garantieren können, dass Ihr Lokalmaster
nicht von der eingeschalteten Hauptleitung abgewichenorigin/master
ist, können Sie dies tun verwendengit update-ref
Ihre aktuelle abzubildenmaster
zum neuen Punkt, aber das ist wahrscheinlich nicht die beste Lösung auf einer regelmäßigen Basis zu verwenden ...quelle
Dieser Befehl ist veraltet:
git branch --set-upstream master origin/master
Wenn Sie also versuchen, das Tracking einzurichten, ist dies der Befehl, der für mich funktioniert hat:
quelle