Ein Kollege hat einen neuen Remote-Zweig auf origin / dev / homepage verschoben, und ich kann ihn beim Ausführen nicht sehen:
$ git branch -r
Ich sehe immer noch bestehende Zweigstellen.
Ich gehe davon aus, dass dies daran liegt, dass meine lokalen Remote-Refs nicht auf dem neuesten Stand sind. Als ich einen Git-Pull ausführte, passierte nichts, da Git-Pull nur den aktuellen Arbeitszweig korrekt zieht. Im Gegensatz zu Git Push, der alle Zweige pusht, die Änderungen am entsprechenden Remote-Zweig haben?
git
remote-branch
hybrid9
quelle
quelle
git pull
, dankegit fetch <name-of-remote>
hat der Trick getan. Ohne den Namen der Fernbedienung hat es NICHT funktioniert.Antworten:
Überprüfen Sie zunächst mithilfe des Befehls, ob der Zweig tatsächlich remote übertragen wurde
git ls-remote origin
. Wenn der neue Zweig in der Ausgabe angezeigt wird, geben Sie den folgenden Befehl eingit fetch
: Er sollte die Zweigreferenzen aus dem Remote-Repository herunterladen.Wenn Ihr Remote-Zweig immer noch nicht angezeigt wird, überprüfen Sie (in der
ls-remote
Ausgabe), wie der Zweigname auf der Remote lautet, und insbesondere, ob er mit beginntrefs/heads/
. Dies liegt daran, dass der Wert von standardmäßigremote.<name>.fetch
lautet:so dass nur die Remote-Referenzen, deren Name mit beginnt
refs/heads/
, lokal als Remote-Tracking-Referenzen unter zugeordnet werdenrefs/remotes/origin/
(dh sie werden zu Remote-Tracking-Zweigen)quelle
git fetch
, lädt git die Referenzen aus dem Standard-Remote-Repository herunter, das in angegeben wurde.git/config
: Normalerweise wird es aufgerufenorigin
, sodass beide Befehle gleichwertig sind, Ihre spezifische Konfiguration jedoch aus irgendeinem Grund unterschiedlich sein kann. Nein, Sie müssen nichtgit fetch
für jeden Zweig angeben, da (standardmäßig) alle Zweige abgerufen werden .git pull
entsprichtgit fetch
+git merge
(odergit rebase
wenn Sie die Standardeinstellungen geändert haben), sodass Sie die Verwendunggit pull
wie gewohnt fortsetzen können und die neuen Remote-Zweige von selbst angezeigt werden .git ls-remote gerritrepo:project
zeigt den neuen Remote-Zweig,git branch -a
aber nicht ... Ich muss einen weiteren Klon erstellen und erst dann wird der neue Zweig angezeigtÜberprüfen Sie, ob
.git/config
enthältWenn ja, ändern Sie es in sagen
Dann sollten Sie es verwenden können:
quelle
brew tap user/repo
: Die lokale Kopie des von geklonten Reposbrew
hatte die von Ihnen genannten Einstellungen und es war nicht möglich, die anderen Zweige, die ich in meinem Repo hatte, zu sehen und zu verwenden. Danke noch einmal! :) +1!git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
und danngit fetch origin
alle Zweige auf Ursprung zu bekommen .Die einfachste Antwort lautet:
git fetch origin <branch_name>
quelle
fatal: Couldn't find remote ref <branch_name>
Ein Git-Remote-Update durchführen wird auch die Liste der im Remote-Repository verfügbaren Zweige aktualisiert.
Wenn Sie TortoiseGit ab Version 1.8.3.0 verwenden, können Sie "Git -> Sync" ausführen. Unten links im angezeigten Fenster wird die Schaltfläche "Remote Update" angezeigt. Klicken Sie darauf. Dann sollten Sie in der Lage sein, "Git -> Switch / Checkout" auszuführen und den neuen Remote-Zweig in der Dropdown-Liste der von Ihnen ausgewählten Zweige anzuzeigen.
quelle
git remote update
ist ein alter Weg, dies zu tun, ist der neuere bevorzugte Befehlgit fetch
.Nehmen wir an, wir suchen Angenommen Release / 1.0.5
Wenn
git fetch -all
ist nicht funktioniert und dass Sie nicht den Remote - Zweig sehen undgit branch -r
nicht zeigt diese spezielle Branche.1. Drucken Sie alle Refs von der Fernbedienung (Zweige, Tags, ...):
git ls-remote origin
Sollte Ihnen den Remote-Zweig anzeigen, nach dem Sie suchen.Der neue Zweig 'release / 1.0.5' erscheint in der Ausgabe.
2. Erzwingen Sie das Abrufen eines Remote-Zweigs:
git fetch origin <name_branch>:<name_branch>
Jetzt haben Sie auch die Refs lokal, Sie checken (oder was auch immer) diesen Zweig aus.
Job erledigt!
quelle
Es klingt trivial, aber mein Problem war, dass ich nicht im richtigen Projekt war. Stellen Sie sicher, dass Sie sich in dem Projekt befinden, in dem Sie sich voraussichtlich befinden. Andernfalls können Sie die richtigen Zweige nicht herunterziehen.
quelle
Ich habe Brute Force angewendet, die Fernbedienung entfernt und dann hinzugefügt
quelle
Was schließlich für mich funktionierte, war das Hinzufügen des Remote-Repository-Namens zum
git fetch
Befehl wie folgt:Jetzt können Sie alle so sehen:
quelle
Sie können Remote Branch / n Git Fetch & Git Checkout Remotebranch auschecken
quelle