Mein Problem hängt mit einem schwerwiegenden Git-Fehler beim Wechseln des Zweigs zusammen .
Ich versuche mit dem Befehl einen Remote-Zweig abzurufen
git checkout -b local-name origin/remote-name
aber ich bekomme diese Fehlermeldung:
fatal: git checkout: Das Aktualisieren von Pfaden ist nicht mit dem Wechseln von Zweigen kompatibel.
Wollten Sie 'origin / remote-name' auschecken, was nicht als Commit aufgelöst werden kann?
Wenn ich manuell einen Zweig erstelle und dann den Remote-Zweig ziehe, funktioniert dies genauso wie das Erstellen eines neuen Klons und das Auschecken des Zweigs.
Warum funktioniert es nicht in dem Repository, mit dem ich arbeite?
Antworten:
Ich glaube, dies tritt auf, wenn Sie versuchen, einen Remote-Zweig auszuchecken, den Ihr lokales Git-Repo noch nicht kennt. Versuchen:
Wenn sich der Remote-Zweig, den Sie auschecken möchten, unter "Neue Remote-Zweige" und nicht unter "Verfolgte Remote-Zweige" befindet, müssen Sie diese zuerst abrufen:
Jetzt sollte es funktionieren:
quelle
git fetch
erhält alle Zweige von allen entfernten Repos.git remote update
bevor Ihr Abruf diese Fernbedienung abruft. Andernfalls erhalten Sie Nachrichten wieDid you intend to checkout 'upstream-repo/master' which can not be resolved as commit?
Bitte fügen Sie diese zur Antwort hinzu und sparen Sie den Leuten Stunden beim Lesen derselben Antworten, die nur für den Ursprung funktionieren.Alternative Syntax,
quelle
--depth
Qualifikationsmerkmal für den ursprünglichen Klon fehlerhaft ist. Ich hatte Erfolg mit,git fetch remote_branch_name:local_branch_name
aber alle anderen Ratschläge scheiterten.Nachdem ich das meiste, was ich in diesem Thread lesen konnte, ohne Erfolg ausprobiert hatte, stieß ich auf diesen: Remote-Zweig, der nicht in "git branch -r" angezeigt wird
Es stellte sich heraus, dass meine .git / config-Datei falsch war. Nach einer einfachen Korrektur wurden alle Zweige angezeigt.
Gehen von
zu
Hat den Trick gemacht
quelle
Sie sind sich nicht sicher, ob dies hilfreich oder für Ihre Frage genau relevant ist. Wenn Sie jedoch versuchen, nur einen einzelnen Zweig aus dem Remote-Repository abzurufen und auszuchecken , reichen die folgenden git-Befehle aus:
quelle
Keines der oben genannten hat bei mir funktioniert. Meine Situation ist etwas anders, mein Remote-Zweig ist nicht am Ursprung . aber in einem anderen Repository.
Tipp: Wenn Sie den Remote-Zweig in der folgenden Ausgabe nicht sehen, können Sie ihn nicht
git branch -v -a
auschecken.Bestätigte Arbeit am 1.7.5.4
quelle
git branch -v -a
: Ich hatte eine falsch konfigurierte Fernbedienung, die angabfetch = +refs/heads/*:refs/remotes/master/*
, obwohl die Fernbedienung aufgerufen wurdeupstream
.Für mich hat funktioniert:
Dadurch werden alle Refs für alle Zweige auf der Fernbedienung auf Ihre Maschine übertragen. Dann könnte ich tun
und das hat perfekt funktioniert. Ähnlich wie die Antwort mit der höchsten Abstimmung, aber etwas einfacher.
quelle
Ich vermute, dass es keinen Remote-Zweig mit dem Namen remote-name gibt, aber dass Sie versehentlich einen lokalen Zweig mit dem Namen origin / remote-name erstellt haben.
Ist es möglich, dass Sie irgendwann getippt haben:
So erstellen Sie einen lokalen Zweig mit dem Namen origin / remote-name? Geben Sie diesen Befehl ein:
Sie werden entweder sehen:
was bedeutet, dass es sich wirklich um eine falsch benannte lokale Niederlassung handelt, oder
was bedeutet, dass es wirklich eine entfernte Niederlassung ist.
quelle
Es ist nicht sehr intuitiv, aber das funktioniert gut für mich ...
DANN führen Sie den Befehl git branch --track aus ...
quelle
Für mich hatte ich einen Tippfehler und mein Remote-Zweig existierte nicht
Verwenden Sie
git branch -a
diese Option, um entfernte Zweige aufzulistenquelle
Könnte Ihr Problem mit dieser anderen SO-Frage "Checkout-Problem" verknüpft sein ?
dh: ein Problem im Zusammenhang mit:
git checkout -b [<new_branch>] [<start_point>]
mit[<start_point>]
dem Namen eines Commits, bei dem der neue Zweig gestartet werden soll, und das'origin/remote-name'
ist es nicht.(wohingegen
git branch
ein start_point der Name eines Remote-Zweigs ist)Hinweis: Das Skript checkout.sh lautet:
Es ist, als ob die Syntax git checkout -b [] [remote_branch_name] sowohl den Zweig umbenannte als auch den neuen Startpunkt des neuen Zweigs zurücksetzte, was als inkompatibel angesehen wird.
quelle
Nach zig Malem Abrufen wurden noch hinzugefügte Fernbedienungen nicht angezeigt, obwohl sich die Blobs im Pool befanden. Es stellt sich heraus, dass die Option --tags
git remote add
aus irgendeinem Grund nicht verwendet werden sollte . Sie können es manuell aus der .git / config entfernen, damit git fetch die Refs erstellt.quelle