Git Pull Remote Branch kann Remote Ref nicht finden

75

Ich bin mir nicht sicher, warum das nicht funktioniert. Wenn ich das tue git branch -a, sehe ich Folgendes:

Geben Sie hier die Bildbeschreibung ein

Ich versuche, aus dem DownloadManager im Online-GitHub-Repository zu ziehen. Ich habe versucht

  • Git Pull, aber dann beschwert es sich darüber, nicht zu wissen, aus welchem ​​Zweig gezogen werden soll
  • Git Pull Ursprung, weiß nicht, welcher Zweig
  • git pull origin downloadmanager fatal: Couldn't find remote ref downloadmanager. Unexpected end of commands stream
  • Git Pull Origin Fernbedienungen / Origin / DownloadManager 'fatal couldn't find remote ref remotes/origin/DownloadManager. Unexpected end of commands stream

Fehlt mir etwas? Wenn ich in Xcode versuche, eine Verbindung zum Repository herzustellen, wird nie etwas angezeigt. Ich habe es in der Vergangenheit geschafft. Aber ich kann nicht wieder pushen, bis ich die letzten Änderungen gezogen habe.

Kristall
quelle
9
Wie wäre es git pull origin DownloadManager?
Felix Kling
Ist Ihr lokaler Downloadmanager-Zweig ein Tracking-Zweig des Remote-Download-Managers? Hier erfahren Sie, wie Sie dies überprüfen können .
R0MANARMY
@ Felix Kling Das hat funktioniert. Möchten Sie antworten, damit ich meine Frage beantworten kann? Es wird also nur zwischen Groß- und Kleinschreibung unterschieden?
Crystal
für alle, die nach einer anderen Antwort auf die Frage suchen git pull remote branch cannot find remote ref: Überprüfen Sie, ob Ihr Remote-Zweig gelöscht wurde. Um sicherzugehen, dass Sie den aktuellen Status vor Ort haben, machen Sie einen git fetchmit der --prune originFlagge
chrissharkman

Antworten:

76

Seien Sie vorsichtig - Sie haben eine Fallmischung zwischen lokalem und entferntem Zweig!

Angenommen, Sie befinden sich jetzt im Download- Manager der lokalen Zweigstelle ( git checkout downloadmanager)

Sie haben die nächsten Optionen:

  1. Geben Sie die Remote-Verzweigung jedes Mal in Pull / Push- Befehlen an (Groß- und Kleinschreibung beachten):

    git pull origin DownloadManager

    oder

    git pull origin downloadmanager:DownloadManager


  1. Geben Sie den Tracking-Zweig beim nächsten Push an:

    git push -u origin DownloadManager

    ( -u ist eine Kurzform von --set-upstream )

    Dadurch bleibt der Downloadmanager: DownloadManager- Link in der Konfiguration automatisch bestehen (gleiches Ergebnis wie im nächsten Schritt).


  1. In git config Standard-Remote-Tracking-Zweig festlegen:

    git branch -u downloadmanager origin/DownloadManager

    (Beachten Sie , da git 1.8 für Verzweigungsbefehl -u ist eine Kurzform von --set-Upstream-to , die ein wenig verschieden ist von veralteten --set-Upstream )

    oder bearbeiten Sie die Konfiguration manuell (ich bevorzuge diesen Weg):

    git config --local -e

    -> Dies öffnet den Editor. Fügen Sie unten einen Block hinzu (raten Sie nach dem "Master" -Block):

    [branch "downloadmanager"]
            remote = origin
            merge = refs/heads/DownloadManager
    

und nach jedem dieser Schritte können Sie leicht verwenden:

git pull

Wenn Sie TortoiseGit verwenden: Klicken Sie mit der rechten Maustaste auf Repo -> TortoiseGit -> Einstellungen -> Git -> Lokale .git / Konfiguration bearbeiten

Radistao
quelle
2
Nur als Update wird heutzutage --set-upstreamzugunsten von --set-upstream-tooder--track
Pioneer Skies
Danke Mann, es ist eine große Hilfe. Ich hatte keine Zeit, als ich dir meinen Code zeigen musste und war bereits mit dem vorherigen Repository durcheinander. Danke noch einmal.
Ozzius
10

Der Filialname in Git unterscheidet zwischen Groß- und Kleinschreibung. Verwenden Sie: Um die Namen Ihrer Zweige anzuzeigen, die Git "sieht" (einschließlich des richtigen Gehäuses):

git branch -vv

... und jetzt, da Sie den richtigen zu verwendenden Zweignamen sehen können, gehen Sie folgendermaßen vor:

git pull origin BranchName 

Dabei ist 'BranchName' der Name Ihrer Niederlassung. Stellen Sie sicher, dass Sie den Fall richtig übereinstimmen

Im Fall des OP (Original Poster) wäre der Befehl also:

git pull origin DownloadManager
Chris Halcrow
quelle
Die Groß- und Kleinschreibung hat mein Problem verursacht.
Weishi Zeng
8

Wenn keine dieser Antworten funktioniert, würde ich zunächst in Ihrer .git/configDatei nach Verweisen auf den Zweig suchen , der Probleme verursacht, und diese entfernen.

rubo77
quelle
Danke, das war es für mich.
PerpetualStudent
6

Dieser Fehler tritt auf, weil das lokale Repository den Remote-Zweig beim ersten Mal nicht identifizieren kann. Sie müssen es also zuerst tun. Dies kann mit folgenden Befehlen erfolgen:

git remote add origin 'url_of_your_github_project'

git push -u origin master
UWU_SANDUN
quelle
2

Für mich war es, weil ich versuchte, einen Zweig zu ziehen, der bereits aus Github gelöscht wurde.

Nilesh Leve
quelle
2

Überprüfen Sie Ihre Filiale auf Ihrem Repo. Vielleicht löscht es jemand.

Joshua Pogi 28
quelle
2

Sie müssen Ihren lokalen Zweig so einstellen, dass er den Remote-Zweig verfolgt. Dies geschieht nicht automatisch, wenn die Groß- und Kleinschreibung unterschiedlich ist.

Versuchen:

git branch --set-upstream downloadmanager origin/DownloadManager
git pull

AKTUALISIEREN:

Die Option '--set-upstream' wird nicht mehr unterstützt.

git branch --set-upstream-to downloadmanager origin/DownloadManager
git pull
Matt Gibson
quelle
1

Dies liegt daran, dass Ihr Name für den Remote-Zweig "DownloadManager" lautet. Wenn Sie Ihren Zweig auschecken, geben Sie diesem Zweig einen neuen Namen "Download-Manager".

Dies ist jedoch nur Ihr lokaler Name, nicht der Name der Remote-Referenz.

Tim
quelle
-1

Ich hatte dieses Problem, als nach dem Neustart und der letzten Kopie von VSCode erneut geöffnet wurde. Das obige Update hat nicht funktioniert, aber als ich VSCode über den Explorer geschlossen und wieder geöffnet habe, hat es funktioniert. Hier sind die Schritte, die ich gemacht habe:

//received fatal error
git remote remove origin
git init
git remote add origin git@github:<yoursite>/<your project>.git
// still received an err 
//restarted VSCode and folder via IE 
//updated one char and resaved the index.html  
git add .
git commit -m "blah"
git push origin master

Devops testen
quelle