Der aktuelle Zweig ist nicht für Pull konfiguriert. Kein Wert für Schlüssel branch.master.merge in der Konfiguration gefunden

163

Ich erhalte diese Fehlermeldung, wenn ich versuche, mit Egit team> pull aus dem Remote-Repository zu ziehen

Der aktuelle Zweig ist nicht für Pull konfiguriert. Kein Wert für Schlüssel branch.master.merge in der Konfiguration gefunden

Ismail Marmoush
quelle
2
Hatte das gleiche Problem, aber für den Wert für den Schlüssel remote.origin.url gefunden, wie dies auf stackoverflow.com/a/10662106/759452 behoben werden kann
Adrien Be

Antworten:

155

Ihr lokaler Hauptzweig ist nicht für die Verfolgung des Remote-Hauptzweigs eingerichtet.

Sie können git pull origin mastergit mitteilen, welchen expliziten Zweig Sie ziehen möchten, oder Sie fügen diesen Ihrer .git / config hinzu:

[branch "master"]
  remote = origin
  merge = refs/heads/master

Wenn Sie zum ersten Mal auf Master drücken, fügen Sie den -uSchalter ( git push -u origin master) hinzu. Dadurch wird alles automatisch eingerichtet.

Michał Szajbe
quelle
25
Aber wie macht man das in Eclipse? Ich glaube, die Frage ist als "Eclipse" gekennzeichnet. Vielen Dank! :)
jmort253
2
+1 Trotzdem danke. Ihre Antwort hat geholfen, da sich herausstellte, dass wir nicht zum Ziehen eingerichtet waren :) Nachdem wir herausgefunden hatten, wie dies in Eclipse konfiguriert werden kann, kamen die Dinge zusammen. Wir stellen jetzt fest, dass es nicht so schmerzhaft ist, mit Git zu arbeiten, wenn Sie Ihren Kopf um die Funktionsweise gewickelt haben. Grundsätzlich haben wir das Repository erneut ausgecheckt und so konfiguriert, dass es abgerufen wird.
jmort253
16
@ jmort253 wäre großartig, wenn Sie die Frage mit den Details aktualisieren würden, die Sie in Eclipse ändern mussten, um dies zu konfigurieren.
Gview
@gview - Entschuldigung, ich habe Egit nicht mehr verwendet und verwende die Befehlszeile. Beim Ziehen hat Eclipse alle von meinen Kollegen festgeschriebenen Dateien als von mir geändert markiert und die Änderungen nicht berücksichtigt. Also benutze ich die Kommandozeile. Ich empfehle EGit nicht; Meine Kollegen, die Macs verwenden, können es jedoch verwenden. Wenn ich versuche, es noch einmal zu versuchen (zweifelhaft), werde ich die Antwort hier aktualisieren. Ehrlich gesagt verstehe ich nicht, worum es bei dem ganzen Hype geht. Ich bin bereit, zu Subversion zurückzukehren.
jmort253
9
@ jmort253, nachdem ich dir die Nachricht hinterlassen hatte, stöberte ich herum und fand heraus, dass der beste Weg, dies zu handhaben, darin besteht, genau das zu tun, was in der ursprünglichen Antwort empfohlen wurde. Egit liest die Werte aus der .git / config. Wenn Sie sie also wie beschrieben mit einem Texteditor bearbeiten, wird das Problem behoben.
Gview
64

Wie sich herausstellt, ist die Antwort von @ Michał Szajbe die Lösung des Problems. Die fraglichen Eclipse-Schlüssel werden aus dem egit "Arbeitsverzeichnis" erstellt. Wenn Sie auf dieses Problem stoßen, suchen Sie das .git-Verzeichnis in diesem Arbeitsverzeichnis und bearbeiten Sie die .git / config-Datei mit einem Texteditor. Fügen Sie dabei den Abschnitt hinzu, den Michal beschreibt. Dies ist meiner Erfahrung nach heutzutage ein ziemlich normaler Vorgang für Fälle, in denen Sie zum ersten Mal init initiieren und auf eine nicht initialisierte Fernbedienung pushen, die den Hauptzweig erstellt. Ich habe in diesem Fall keine Möglichkeit gefunden, die manuelle Bearbeitung nicht durchzuführen, um Git zu ziehen, selbst mit Befehlszeilen-Git.

Nachdem die Bearbeitung gespeichert wurde, klicken Sie mit der rechten Maustaste auf das Git-Repo in Ihrer egit-Perspektive "Git Repositories" und wählen Sie Eigenschaften. Sie sehen nun, dass dieser Schlüsselabschnitt erstellt wurde (oder eher einfach aus der Konfigurationsdatei gelesen wurde) und eine Fernbedienung Der Master-to-Local-Master-Git-Pull funktioniert in Zukunft wie erwartet.

Geben Sie hier die Bildbeschreibung ein

Es ist möglich, dass Sie diese Schlüssel und Werte selbst eingeben, aber das Kopieren und Einfügen von Michal-Shows ist sicherlich viel schneller und wahrscheinlich sicherer. Ich habe nicht versucht, die Schlüssel manuell über den Eigenschafteneditor hinzuzufügen, und ich bin mir auch nicht sicher, da diese Methode funktioniert und sinnvoll ist, da egit einfach das lokale Git-Repo aufruft.

Ich unterstütze auch einige Leute in meinem Büro, die Flex und den Flexbuilder-Editor verwenden, der auf Eclipse und egit basiert. Diese Anweisungen sind für sie gleichermaßen relevant.

gview
quelle
7
Ich habe die Konfigurationsdatei nicht direkt bearbeitet, sondern den Schlüssel "branch.master.merge" über das oben gezeigte Dialogfeld "Eigenschaften" hinzugefügt. Dies funktionierte auch wie ein Sharm.
Matthias Wuttke
57

Um dieses Problem in Eclipse zu beheben, öffnen Sie das Windows- Menü und wählen Sie Ansicht anzeigen / Andere / Git-Repositorys .

Auf der Registerkarte Git Repositories:

  • Erweitern Sie Ihr lokales Repository
  • Klicken Sie mit der rechten Maustaste auf Remote
  • Klicken Sie auf Create Remote ...
  • Remote-Name = Ursprung
  • Drücken Sie neben IRI die Schaltfläche Ändern
  • CTRL+ SPACEauf URI
  • Wählen Sie den Remote-Standort
  • Drücken Sie Fertig stellen
  • Drücken Sie Speichern und drücken

Wieder von der Registerkarte Git Repositories:

  • Rechtsklick auf Ursprung
  • Wählen Sie Configure Fetch ...
  • Drücken Sie beim Ref-Mapping auf Bearbeiten (Erweitert) ...
  • Drücken Sie Add All Branches Spec
  • Aktivieren Sie das Kontrollkästchen Update erzwingen
  • Drücken Sie Fertig stellen

Wieder von der Registerkarte Git Repositories:

  • Klicken Sie mit der rechten Maustaste auf Ihr lokales Repository
  • Wählen Sie Eigenschaften
  • Drücken Sie Neuer Eintrag ...
  • Geben Sie die folgenden zwei Tasten ein:

(1)

Key = branch.master.remote
Value = origin

(2)

Key = branch.master.merge
Value = refs/heads/master
Marco Lackovic
quelle
4
Für mich ist dies die beste Antwort auf die Frage.
Kashif Nazar
1
Der akzeptierten Antwort scheinen einige Schritte zu fehlen, die hier behandelt werden.
FableBlaze
47

Das hat bei mir funktioniert:

Klicken Sie mit der rechten Maustaste auf meinen ausgecheckten lokalen Zweig, der nicht abgerufen werden kann (meiner heißt "Entwicklung"). Wählen Sie "Zweig konfigurieren ...". Für "Upstream-Zweig:" habe ich "Refs / Heads / Entwicklung" ausgewählt. Für "Remote:" Ich habe "Ursprung" ausgewählt. Links "Rebase" deaktiviert. Klicken Sie auf OK

Jetzt sieht mein Konfigurations-Einstellungsfenster wie das in der Antwort von gview aus.

Zip184
quelle
14
Ich fand "Zweig konfigurieren ..." sehr schwer zu finden. Ich habe es geschafft, indem ich in die Ansicht "Git Repositories" gegangen bin, Filialen erweitert habe, lokal und dann mit der rechten Maustaste auf die Filiale geklickt habe
Edd
18

Ich hatte auch Probleme, es zu konfigurieren. Es funktioniert jetzt, also werde ich meine Konfigurationsdatei freigeben. Ich denke, es wird helfen:

[core]
    repositoryformatversion = 0
    filemode = false
    logallrefupdates = true

    [branch "master"] 
        remote = origin 
        merge = refs/heads/master 
    [remote "origin"] 
        url = https://github.com/chelder86/ArcadeTongame.git
        fetch = +refs/heads/*:refs/remotes/origin/*

Hinweis: https://github.com/chelder86/ArcadeTongame.gitsollte durch Ihre eigene HTTPS-Klon-URL ersetzt werden.

Chelder
quelle
Eine funktionierende Konfigurationsdatei ist genau das, was ich mir ansehen musste. Vielen Dank!
Martin Tuskevicius
10

Gleiches Problem. Hier ist, wie ich es in Eclipse / egit gelöst habe :

Ursprünglich habe ich ein Remote-Repo auf meinen Bürocomputer geklont (mein eigenes Repo, aber auf einem Remote-Server). Dann habe ich lokal einen neuen Zweig des Repo-Projekts erstellt ("Testen") und ihn in das Remote-Repository verschoben. Klonen Sie das Remote-Repo auf meinen Laptop, wechseln Sie zum Zweig "Testen", arbeiten Sie daran usw., drücken Sie und kehren Sie dann ins Büro zurück. Als ich versuchte, "Test" -Änderungen vom Server abzurufen, wurde die Meldung "Lokaler Zweig nicht für Pull konfiguriert" angezeigt.

Das Problem ist, dass "Testen" auf dem Desktop nur lokal ist, keine Remote-URL-Informationen enthält und daher keine Änderungen abrufen kann.

Ich habe dies innerhalb von Eclipse (egit) gelöst durch:

  1. lokalen Zweig löschen
  2. Zweig vom Remote-Repo als neuen Zweig ziehen.

Schritte waren:

  • Gehen Sie zur Perspektive "Git Repository Exploring"
  • benenne den lokalen Zweig in "zzz" um (paranoid, lösche nicht gern, bis ich sicher bin, dass ich es richtig verstanden habe!)
  • Klicken Sie mit der rechten Maustaste auf "Zweige", "Wechseln zu", "Neuer Zweig".
  • Ziehen Sie die Liste "Quellreferenz" herunter und wählen Sie den Zweig "Testen" aus (ziehen Sie die Strategie "Zusammenführen", "Neuen Zweig auschecken" aktiviert).
  • Klicken Sie auf "Fertig stellen".
  • Wechseln Sie zur normalen Perspektive und stellen Sie sicher, dass meine Dateien vorhanden sind
  • Wechseln Sie zurück zum Git Repository. Erforschen und löschen Sie den Zweig "zzz".

Hinweis: Ich verwende Eclipse Indigo. Bei anderen Versionen können die Schritte unterschiedlich sein.

Ian Scott-Fleming
quelle
9

Ich habe gerade das gleiche Problem bekommen, aber die akzeptierte Antwort hat bei mir nicht funktioniert. Folgendes habe ich getan (obwohl ich nicht bestätigen kann, ob die akzeptierte Antwort Auswirkungen hatte, da die aktualisierte Konfiguration erhalten bleibt):

Erweitern Sie Ihren Git-Repository-Baum in der Ansicht "Git-Repositorys".

Klicken Sie mit der rechten Maustaste auf "Fernbedienungen" und wählen Sie "Remote erstellen".

Wählen Sie das Optionsfeld 'Abruf konfigurieren' -> 'OK'.

Wählen Sie neben dem Textfeld "URI" die Option "Ändern"

Geben Sie Ihre Git-Repository-Details ein und klicken Sie auf "Fertig stellen".

Wählen Sie 'Speichern'

Sie sollten jetzt in der Lage sein, aus dem Remote-Repository zu ziehen.

Hinweis - Als ich 'Dry-Run' ausprobiert habe, was meiner Meinung nach nur ein Verbindungstest ist, ist es fehlgeschlagen, aber das Ziehen hat immer noch funktioniert.

blauer Himmel
quelle
funktioniert perfekt. Ähnliche Lösung wie für diese Frage stackoverflow.com/a/10662106/759452
Adrien Be
3

Über die Lösung von gview:

then find the .git directory in that working directory and edit the .git/config file with a text editor

Sie müssen es nicht selbst finden oder mit einem Texteditor öffnen.

  • Fenster -> Ansicht anzeigen -> Andere -> GIT -> Git-Repositorys
  • Erweitern Sie den von Ihnen erstellten Repo-Ordner.
  • Es wird einen Ordner namens "Arbeitsverzeichnis" enthalten, erweitern Sie ihn.
  • Im Ordner "Working Directory" befindet sich ein Ordner mit dem Namen ".git". Erweitern Sie ihn.
  • In ".git" befindet sich "config". Klicken Sie mit der rechten Maustaste auf "config" -> öffnen Sie im Editor. Die Konfigurationsdatei wird direkt in Eclipse geöffnet, wo Sie sie bearbeiten können. Ich habe folgendes hinzugefügt und jetzt kann ich ohne Fehler ziehen:

[Zweig "Master"]

remote = Ursprung

Merge = Refs / Heads / Master

Mike
quelle
2

Was ich mit eclispe gefunden habe (dies ist sicherlich nicht der richtige Weg, aber es funktioniert): Zum Remote-Repository pushen, lokalen Arbeitsbereich und Repository löschen, über den Importdialog aus git importieren. Der Importassistent kümmert sich darum, alles für zukünftige Pulls einzurichten.

Thomas
quelle
2

Versuchen Sie Windows-> Show View-> Navigator. Suchen Sie in den Navigator-Fenstern den Ordner bin in Ihrem Projekt. Legen Sie dann den Ordner bin in github fest und hoffen Sie, dass er gut funktioniert. Versuchen Sie, es nach allen oben genannten Aufgaben zu ziehen oder zu holen.

user11435
quelle
2
The current branch is not configured for pull.
No value for key branch.master.merge found in configuration

Eine Alternative für PULL (Vermeidung des obigen Fehlers) ist:

  1. FETCH , um Ihren Remote-Zweig auf Ihrem Computer zu aktualisieren
  2. MERGE Ihrer lokalen Niederlassung mit Ihrer Remote-Niederlassung
    (Team -> Merge ... -> Remote Tracking -> Ursprung / Zweigstelle )
Felsen
quelle
2

Git-Repository-Ansicht -> + Zweige -> lokal -> Wählen Sie den lokalen Zweig aus, den Sie dem Remote-Zweig zuweisen möchten -> Rechtsklick -> Wählen Sie den Remote-Zweig (wahrscheinlich den Ursprung) und den Upstream-Zweig aus

Piotrek
quelle
Dies geschah in Eclipse ohne die Änderungen an der "Konfigurationsdatei". Sollte die akzeptierte Antwort sein, da die Frage spezifisch für Eclipse ist.
Josephus
1

Die einfachste Lösung, die ich bei der Verwendung des Eclipse Git-Plugins gefunden habe, lautet wie folgt:

  1. Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie Team> Push Branch
  2. Stellen Sie sicher, dass das Kontrollkästchen neben "Upstream für Push and Pull konfigurieren" aktiviert ist
  3. Klicken Sie auf Weiter und schließen Sie den Push ab.

Nachdem dies abgeschlossen ist, wird der Zweig nun auch für das Ziehen korrekt konfiguriert.

Francis Brennan
quelle
1

Bearbeiten Sie die Konfigurationsdatei in Ihrem Repository-Ordner .git wie folgt.

ersetzen https://github.com/your/uri in Ihrem Github-Repository uri.

Viel Glück.

[core]
    symlinks = false
    repositoryformatversion = 0
    filemode = false
    logallrefupdates = true
[branch "master"]
    remote = origin
    merge = refs/heads/master
[remote "origin"]
    url = https://github.com/your/uri
    fetch = +refs/heads/*:refs/remotes/origin/*

ps: Idee verwenden, Sonnenfinsternis vergessen

TGich
quelle
0

Sie müssen Ihre Konfigurationsdatei durch diesen Code ersetzen. Ihre Konfigurationsdatei befindet sich im Ordner 'git' in Ihrem Repository. Der Ordner 'git' ist ausgeblendet, daher müssen Sie zuerst die ausgeblendeten Dateien anzeigen. Öffnen Sie die Konfigurationsdatei und schreiben Sie die folgenden Codes: -

[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true


hideDotFiles = dotGitOnly
[remote "origin"]
url = 'url to the git repository that you want to pull'
fetch = 

+refs/heads/*:refs/remotes/origin/*
puttykeyfile = 
[branch "master"]
remote = origin
merge = refs/heads/master
[gui]
wmstate = normal


geometry = 887x427+66+66 171 192
Viper
quelle
0

Ich habe das gleiche Problem in Eclipse Neon. Aber keine der Lösungen hat bei mir funktioniert. Ich habe das Problem erhalten, als ich den Zweig des Projekts geändert habe und dann diesen Fehler ausgelöst hat. Die Lösung, die ich versucht habe, ist:

  1. Gehen Sie zu project / .git / config Datei .
  2. Wenn rebase = false , entfernen Sie es.
  3. Aktualisieren Sie Ihr Projekt.
  4. Ziehen oder ziehen Sie an der Sonnenfinsternis.
  5. Fehler behoben.

PS: Da es sich um einen alten Thread handelt, wird nur ein Update durchgeführt, da dies möglicherweise für eine andere Person erfolgt.

Beschäftigte Biene
quelle
0

Wenn Sie beim Festschreiben auf dieses Problem stoßen. Versuchen Sie diesen einfachen Ansatz:

  1. Team-> Push to Upstream - Ein Popup wird geöffnet.
  2. Kopieren Sie Ihren URI und fügen Sie ihn in dieses Popup ein.

Ihr Zweig wird zum Ziehen / Drücken konfiguriert. Ihre Codeänderungen werden an das Repository weitergeleitet.

Vielen Dank

Ganapati Prasad
quelle