Git-Pull von der Fernbedienung, aber kein solcher Ref wurde geholt?

69

Ich habe einen Git-Spiegel auf meiner Festplatte und wenn ich mein Repo mit Git-Pull aktualisieren möchte, erhalte ich folgende Fehlermeldung:

 Your configuration specifies to merge with the ref '3.5/master' from the remote, but no such ref was fetched.

Es gibt mir auch:

  1ce6dac..a5ab7de  3.4/bfq    -> origin/3.4/bfq
  fa52ab1..f5d387e  3.4/master -> origin/3.4/master
  398cc33..1c3000a  3.4/upstream-updates -> origin/3.4/upstream-updates
  d01630e..6b612f7  3.7/master -> origin/3.7/master
  491e78a..f49f47f  3.7/misc   -> origin/3.7/misc
  5b7be63..356d8c6  3.7/upstream-updates -> origin/3.7/upstream-updates
  636753a..027c1f3  3.8/master -> origin/3.8/master
  b8e524c..cfcf7b5  3.8/misc   -> origin/3.8/misc
  * [neuer Zweig]     3.8/upstream-updates -> origin/3.8/upstream-updates

Wenn ich make menuconfig starte, bekomme ich Linux Version 3.5.7? Was bedeutet das? Wie kann ich mein Repo aktualisieren?

Gigamegs
quelle

Antworten:

58

Überprüfen Sie den Zweig, in dem Sie sich befinden ( git branch), überprüfen Sie die Konfiguration für diesen Zweig (in .../.git/config), Sie befinden sich wahrscheinlich in dem falschen Zweig oder Ihre Konfiguration weist Sie an, mit einem (jetzt?) Nicht vorhandenen entfernten Zweig zusammenzuführen.

vonbrand
quelle
22
Verwenden Sie zum Entfernen nicht vorhandener Verweise auf Remotezweige in Ihrem lokalen Repository git remote prune origin.
Jevon
7
Eine weitere Möglichkeit, „die Konfiguration zu überprüfen“ für einen Zweig ist: git branch -vv. Das zeigt die der Filiale zugeordnete "Remote".
offby1
28

In meinem Fall war meine lokale Zweigstelle nicht so eingestellt, dass sie die entfernte Zweigstelle verfolgt. Ich musste manuell ausführen:

git pull origin remotebranch

Wenn Sie das nächste Mal einen Push ausführen, führen Sie "git push -u" aus, um die korrekte Verfolgung einzurichten.

Mauvis Ledford
quelle
Das gleiche gilt, wenn Sie zum ersten Mal ein leeres Repo klonen, dh mitgit init --bare
Cyclonecode am
10

In meinem Fall hatten meine lokale Niederlassung und die entfernte Niederlassung unterschiedliche Groß- und Kleinschreibung.

Um dies zu beheben, habe ich meinen lokalen Zweig gelöscht $ git branch -d branch-nameund dann den entfernten Zweig erneut mit $ git fetchund ausgecheckt $ git checkout Branch-name.

Feckmore
quelle
Es ist sauber, einfach und funktioniert gut. Danke.
Balasubramani M
Ich habe diesen Fehler in der Zeile cmd erhalten. Versuchte SmartGit mit einer Rebase und kam daran vorbei.
P.Brian.Mackey
Tun Sie dies einmal, anstatt den Zweig jedes Mal zu löschen und den Zweig erneut auszuchecken: Korrigieren Sie die Großschreibung in Ihrem /.git/config
wz366.
2

Möglicherweise hat eine andere Person in Ihrem Team Ihren Zweig einfach zusammengeführt und gelöscht (in der Regel nach dem Zusammenführen). Sie können den Zweig im Repo erstellen und es erneut versuchen. Es passiert mir gelegentlich in meiner Firma (standardmäßig wird bitbucket zusammengeführt und gelöscht).

Scott Biggs
quelle
1

In meinem Fall (die übliche Einschränkung) hatte ich bereits einen Zweig mit dem entsprechenden Namen, so dass ich nur remote = originmeine .git / config hinzufügen musste :

[branch "sparql"]
    merge = refs/heads/sparql
    remote = origin # <-- added
ericP
quelle
1

Ich hatte den gleichen Fehler, als mir der Speicherplatz ausgegangen ist. Nach dem Ändern der Lautstärke war der Fehler behoben.

Daniel Alder
quelle
0

Dieses Problem ist auf ein Gehäuseproblem zurückzuführen, das sich unter Windows bemerkbar macht.

Meine Git-Konfiguration sah so aus:

[branch "Bug/some_branch"]
  remote = origin
  merge = refs/heads/Bug/some_branch

Auf dem Server waren sowohl "Bug" als auch "Bug" als Teil mehrerer Zweige vorhanden. Windows kann jedoch aufgrund der Dateisystemzuordnung immer nur jeweils einen davon speichern. Daher habe ich meine Konfiguration manuell aktualisiert, um sie an die Serverversion anzupassen, wodurch das Pull-Problem tatsächlich behoben wurde:

[branch "Bug/some_branch"]
  remote = origin
  merge = refs/heads/bug/some_branch
Grimasse der Verzweiflung
quelle
0

Wenn der Zweig weg ist,

$ git status
On branch blah_gone_now
Your branch is based on 'origin/1234/blah_gone_now', but the upstream is gone.
  (use "git branch --unset-upstream" to fixup)

$ git branch --unset-upstream

Dann checkout master oder was auch immer du brauchst

MCM
quelle