Il ramo corrente non è configurato per pull Nessun valore per la chiave branch.master.merge trovato nella configurazione


163

Ottengo questo errore quando provo a estrarre dal repository remoto usando il team Egit> pull

Il ramo corrente non è configurato per pull Nessun valore per la chiave branch.master.merge trovato nella configurazione


2
Aveva lo stesso problema, ma per valore per la chiave remote.origin.url trovato come risolvere questo problema su stackoverflow.com/a/10662106/759452
Adrien Be

Risposte:


155

Il ramo master locale non è impostato per tenere traccia del ramo master remoto.

Si potrebbe fare git pull origin masterper dire a git il ramo esplicito che si desidera estrarre o aggiungerlo a .git / config:

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

Quando si preme su master per la prima volta, aggiungere l' -uopzione ( git push -u origin master). Questo imposterà tutto automaticamente.


25
Ma come si fa in eclissi? Credo che la domanda sia taggata come "eclissi". Grazie! :)
jmort253,

2
+1 Grazie comunque. La tua risposta è stata di aiuto perché si è scoperto che non eravamo pronti a tirare :) Una volta capito come configurarlo in Eclipse, le cose si sono messe insieme. Ora stiamo scoprendo che Git non è così doloroso con cui lavorare una volta che avvolgi la testa come funziona. Fondamentalmente abbiamo verificato nuovamente il repository e configurato per pull.
jmort253,

16
@ jmort253 sarebbe fantastico se dovessi aggiornare la domanda con i dettagli di cosa hai dovuto cambiare in eclipse per configurarlo.
gview

@gview - Mi dispiace, ho smesso di usare Egit e sto usando la riga di comando. Quando estraggo, Eclipse ha contrassegnato tutti i file che i miei colleghi hanno commesso come modificati da me e non includeranno le modifiche. Quindi sto usando la riga di comando. Non consiglio EGit; tuttavia, i miei colleghi che usano i Mac sono in grado di usarlo. Se provo a dargli un'altra possibilità (dubbioso), aggiornerò la risposta qui. Francamente, non vedo di cosa si tratta. Sono pronto per tornare a Subversion.
jmort253,

9
@ jmort253, dopo che ti ho lasciato il messaggio, ho cercato e capito che il modo migliore per gestirlo è fare esattamente ciò che è stato raccomandato nella risposta originale. Egit legge i valori da .git / config, quindi modificandolo con un editor di testo come descritto, risolve il problema.
Guarda il

64

A quanto pare, la risposta di @ Michał Szajbe È la soluzione al problema. Le chiavi eclipse in questione sono costruite dalla egit "directory di lavoro". Se dovessi riscontrare questo problema, trova la directory .git in quella directory di lavoro e modifica il file .git / config con un editor di testo, aggiungendo la sezione descritta da Michal. Questa è nella mia esperienza un'operazione abbastanza standard in questi giorni per i casi in cui si avvia Git Init e si passa a un telecomando non inizializzato, che crea il ramo principale. In questo caso non ho trovato il modo di non eseguire la modifica manuale per git pull, anche con git da riga di comando.

Dopo che la modifica è stata salvata, fai clic con il pulsante destro del mouse sul repository git nella tua prospettiva "Git Repositories" e scegli le proprietà, ora vedrai che questa sezione di chiavi è stata creata (o più probabilmente appena letta dal file di configurazione) e un telecomando da master a master locale git pull funzionerà come previsto in futuro.

inserisci qui la descrizione dell'immagine

È possibile che tu possa inserire queste chiavi e questi valori da solo, ma copiare e incollare ciò che Michal mostra è sicuramente molto più veloce e probabilmente più sicuro. In realtà non ho provato ad aggiungere le chiavi manualmente tramite l'editor di proprietà, né è probabile che lo sappia, poiché so che questo metodo funziona e ha senso poiché egit sta semplicemente chiamando il repository git locale.

Sto anche supportando alcune persone nel mio ufficio che usano Flex e l'editor Flexbuilder che si basa su eclipse ed egit. Queste istruzioni sono ugualmente rilevanti per loro.


7
Non ho modificato direttamente il file di configurazione, ma ho aggiunto la chiave "branch.master.merge" utilizzando la finestra di dialogo Proprietà mostrata sopra. Funzionava anche come uno squalo.
Matthias Wuttke,

57

Per risolvere questo problema in Eclipse, apri il menu di Windows e seleziona Mostra repository Visualizza / Altro / Git .

Dalla scheda Repository Git:

  • espandi il tuo repository locale
  • fare clic con il tasto destro su Remote
  • fai clic su Crea remoto ...
  • Nome remoto = origine
  • accanto a IRI premere il pulsante Cambia
  • CTRL+ SPACEsu URI
  • seleziona la posizione remota
  • premere Fine
  • premere Salva e premi

Ancora una volta, dalla scheda Repository Git:

  • fare clic con il tasto destro sull'origine
  • seleziona Configura Recupera ...
  • sulla mappatura Ref premere il pulsante Modifica (Avanzato) ...
  • premere Aggiungi tutte le filiali
  • seleziona la casella di controllo Force Update
  • premere Fine

Ancora una volta, dalla scheda Repository Git:

  • fare clic con il tasto destro sul repository locale
  • seleziona Proprietà
  • premere Nuova voce ...
  • inserire le seguenti due chiavi:

(1)

Key = branch.master.remote
Value = origin

(2)

Key = branch.master.merge
Value = refs/heads/master

4
Per me, questa è la risposta migliore per la domanda.
Kashif Nazar,

1
La risposta accettata sembra mancare di alcuni passaggi illustrati qui.
FableBlaze,

47

Questo ha funzionato per me:

Fare clic con il tasto destro del mouse sul ramo locale estratto che non è in grado di estrarre (il mio si chiama "sviluppo") Selezionare "Configura ramo ..." Per "Upstream Branch:", ho selezionato "refs / heads / development" Per "Remote:" Ho selezionato "origine" Sinistra "Rebase" deselezionato Hit OK

Ora la mia finestra di configurazione è simile a quella nella risposta di gview.


14
Ho trovato "Configura filiale ..." molto difficile da trovare. Sono riuscito a trovarlo andando nella vista "Git Repositories", espandendo i rami, locale e quindi facendo clic destro sul ramo
Edd

18

Ho anche avuto problemi a configurarlo. Ora funziona, quindi condividerò il mio file di configurazione. Penso che aiuterà:

[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/*

Nota: https://github.com/chelder86/ArcadeTongame.gitdeve essere sostituito con il proprio URL clone HTTPS.


Un file di configurazione funzionante è esattamente ciò di cui avevo bisogno. Grazie!
Martin Tuskevicius,

10

Stesso problema. Ecco come l'ho risolto all'interno di eclipse / egit :

Inizialmente ho clonato un repository remoto sul mio computer dell'ufficio (il mio repository personale, ma su un server remoto). Quindi ho creato un nuovo ramo del progetto repo localmente ("testing") e l'ho trasferito al repository remoto. Clonato il repository remoto sul mio laptop, è passato al ramo "testing", ci ha lavorato, ecc., Ha spinto, quindi è tornato in ufficio. Quando ho provato a estrarre le modifiche "testing" dal server, ho ricevuto msg "ramo locale non configurato per pull".

Il problema è che sul desktop il "test" è solo locale, non ha informazioni sull'URL remoto, quindi non è possibile eseguire le modifiche.

Ho risolto questo problema in eclipse (egit) con:

  1. eliminazione della filiale locale
  2. estrarre il ramo dal repository remoto come nuovo ramo.

I passaggi sono stati:

  • Vai a Git Repository Esplorare la prospettiva
  • rinomina il ramo locale "zzz" (paranoico, non mi piace cancellare fino a quando non ho capito bene!)
  • rt-clic su "Branches", "Passa a", "New Branch"
  • estrarre l'elenco "Rif. sorgente", selezionare il ramo "testing" (estrarre la strategia "unisci", "Verifica nuovo ramo" selezionato)
  • fai clic su "fine"
  • Passa alla solita prospettiva, assicurati che i miei file siano presenti
  • tornare al repository Git Esplorazione ed eliminazione del ramo "zzz"

Nota: sto eseguendo Eclipse Indigo. I passaggi possono essere diversi su altre versioni.


9

Ho appena avuto lo stesso problema ma la risposta accettata non ha funzionato per me. Ecco cosa ho fatto (anche se non posso confermare se la risposta accettata ha avuto un impatto poiché la configurazione aggiornata rimane):

Espandi la tua struttura di repository git dalla vista 'Git Repositories'.

Fare clic con il tasto destro su "Telecomandi" e selezionare "Crea telecomando"

Seleziona il pulsante di opzione "Configura recupero" -> "Ok"

Seleziona "Cambia" accanto alla casella di testo "URI"

Inserisci i dettagli del tuo repository git e fai clic su "Fine"

Seleziona "Salva"

Ora dovresti essere in grado di estrarre dal repository remoto.

Nota: quando ho provato 'Dry-Run', che penso sia solo un test di connessione, non è riuscito ma il pull ha comunque funzionato.


funziona perfettamente. Soluzione simile a questa domanda stackoverflow.com/a/10662106/759452
Adrien Be

3

Informazioni sulla soluzione di gview:

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

Non è necessario trovarlo da soli o aprirlo con un editor di testo.

  • Finestra -> Mostra vista -> Altro -> GIT -> Git Repositories
  • Espandi la cartella dei repository che hai creato.
  • Conterrà una cartella denominata "Directory di lavoro" espanderla.
  • Ci sarà una cartella nella cartella "Directory di lavoro" chiamata ".git" espanderla.
  • All'interno di ".git" ci sarà "config", fare clic con il tasto destro su "config" -> apri nell'editor. Il file di configurazione si aprirà proprio in Eclipse dove è possibile modificarlo. Ho aggiunto quanto segue e ora posso estrarre senza errori:

[ramo "maestro"]

remoto = origine

merge = refs / heads / master


2

Quello che ho scoperto che ha funzionato usando eclispe (questo non è certamente il modo giusto per farlo ma funziona): spingere nel repository remoto, eliminare lo spazio di lavoro e il repository locali, importare da Git usando il dialogo di importazione. La procedura guidata di importazione si occupa di impostare tutto per pull futuri.


2

Prova windows-> Mostra vista-> Navigatore. Nelle finestre di Navigator, trova la cartella bin nel tuo progetto, quindi commetti la cartella bin in github e spera che funzioni bene. Prova a estrarlo o recuperarlo dopo tutte le attività sopra.


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

Un'alternativa per PULL (evitando l'errore sopra) è:

  1. FETCH per aggiornare il tuo ramo remoto sul tuo computer
  2. MERGE della tua filiale locale con la tua filiale remota
    (Team -> Unisci ... -> Tracciamento remoto -> origine / filiale )

2

git repository view -> + rami -> locale -> seleziona il ramo locale che vuoi assegnare a quello remoto -> tasto destro -> seleziona il ramo remoto (probabilmente di origine) e quello a monte


questo è stato fatto in eclissi senza nessuna delle modifiche al "file di configurazione". Dovrebbe essere la risposta accettata, in quanto la domanda è specifica per l'eclissi.
josephus,

1

La soluzione più semplice che ho trovato durante l'utilizzo del plug-in Eclipse Git è la seguente:

  1. Fare clic con il tasto destro del mouse sul progetto e selezionare Team> Push Branch
  2. Assicurati che la casella accanto a "Configura upstream per push and pull" sia selezionata
  3. Fai clic su Avanti e completa il push.

Al termine, il ramo verrà ora correttamente configurato anche per pull.


1

modificare il file di configurazione nella cartella .git del repository in questo modo.

sostituire https://github.com/your/uri al tuo repository github uri.

in bocca al lupo.

[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: usa l'idea, dimentica l'eclissi


0

Devi sostituire il tuo file di configurazione con questo codice. Il tuo file di configurazione si trova nella cartella 'git' nel tuo repository. La cartella 'git' è nascosta, quindi prima devi mostrare i file nascosti. Apri il file di configurazione e scrivi questi codici: -

[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

0

Ho avuto lo stesso problema in Eclipse Neon. Ma nessuna soluzione ha funzionato per me. Ho riscontrato il problema quando ho cambiato il ramo del progetto e quindi ha generato questo errore. La soluzione che ho provato è:

  1. Vai a project / .git / config .
  2. Se rebase = false , rimuoverlo.
  3. Aggiorna il tuo progetto.
  4. Fai git pull o pull da eclissi.
  5. Errore risolto

PS: Trattandosi di un vecchio thread, solo l'aggiornamento in quanto potrebbe venire per qualcun altro.


0

Durante il commit, se si riscontra questo problema. Prova questo semplice approccio:

  1. Team-> Push to upstream - Si apre un popup.
  2. Copia il tuo URI e incollalo in quel popup.

Il tuo ramo viene configurato per tirare / spingere. Le modifiche al codice verranno trasferite al repository.

Grazie

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.