La branche actuelle n'est pas configurée pour pull Aucune valeur pour la clé branch.master.merge trouvée dans la configuration

163

J'obtiens cette erreur lorsque j'essaye d'extraire du référentiel distant en utilisant Egit team> pull

La branche actuelle n'est pas configurée pour pull Aucune valeur pour la clé branch.master.merge trouvée dans la configuration

Ismail Marmoush
la source
2
J'ai eu le même problème mais pour la valeur de la clé remote.origin.url a trouvé comment résoudre ce problème sur stackoverflow.com/a/10662106/759452
Adrien Be

Réponses:

155

Votre branche principale locale n'est pas configurée pour suivre la branche principale distante.

Vous pouvez faire git pull origin masterpour dire à git la branche explicite que vous voulez extraire ou ajouter ceci à votre .git / config:

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

Lorsque vous appuyez sur Master pour la première fois, ajoutez le -ucommutateur ( git push -u origin master). Cela mettra tout en place automatiquement.

Michał Szajbe
la source
25
Mais comment faites-vous cela en éclipse? Je crois que la question est étiquetée comme "éclipse". Merci! :)
jmort253
2
+1 Merci quand même. Votre réponse a aidé car il s'avère que nous n'avons pas été configurés pour tirer :) Une fois que nous avons compris comment configurer cela dans Eclipse, les choses se sont réunies. Nous constatons maintenant que Git n'est pas si pénible de travailler avec une fois que vous avez compris la façon dont cela fonctionne. Nous avons essentiellement extrait à nouveau le référentiel et l'avons configuré pour l'extraction.
jmort253
16
@ jmort253 serait génial si vous mettiez à jour la question avec les détails de ce que vous avez dû changer dans eclipse pour configurer cela.
gview
@gview - Désolé, j'ai arrêté d'utiliser Egit et j'utilise la ligne de commande. Lorsque je tire, Eclipse a marqué tous les fichiers que mes collègues ont commis comme modifiés par moi et n'a pas inclus les modifications. Donc, j'utilise la ligne de commande. Je ne recommande pas EGit; cependant, mes collègues utilisant des Mac peuvent l'utiliser. Si j'essaie de lui donner une autre chance (douteuse), je mettrai à jour la réponse ici. Franchement, je ne vois pas de quoi parle tout ce battage médiatique. Je suis prêt à revenir à Subversion.
jmort253
9
@ jmort253, après vous avoir laissé le message, j'ai fouillé et compris que la meilleure façon de gérer cela est de faire exactement ce qui était recommandé dans la réponse originale. Egit lit les valeurs du fichier .git / config, donc le modifier avec un éditeur de texte comme décrit, résout le problème.
gview
64

En fait, la réponse de @ Michał Szajbe EST la solution au problème. Les clés d'éclipse en question sont construites à partir du "répertoire de travail" egit. Si vous rencontrez ce problème, recherchez le répertoire .git dans ce répertoire de travail et modifiez le fichier .git / config avec un éditeur de texte, en ajoutant la section décrite par Michal. C'est selon mon expérience une opération assez standard de nos jours pour les cas où vous commencez par git init et poussez vers une télécommande non initialisée, qui crée la branche principale. Je n'ai pas trouvé de moyen dans ce cas de ne pas faire l'édition manuelle pour git pull, même avec la ligne de commande git.

Une fois la modification enregistrée, faites un clic droit sur le dépôt git dans votre perspective egit "Git Repositories", et choisissez les propriétés, vous verrez maintenant que cette section de clés a été créée (ou plus probablement juste lue à partir du fichier de configuration) et une télécommande master au master local git pull fonctionnera comme prévu à l'avenir.

entrez la description de l'image ici

Il est possible que vous puissiez entrer ces clés et valeurs vous-même, mais copier et coller ce que Michal montre est certainement beaucoup plus rapide et probablement plus sûr. Je n'ai pas réellement essayé d'ajouter les clés manuellement via l'éditeur de propriétés et je ne suis pas susceptible de le faire, car je sais que cette méthode fonctionne et a du sens car egit appelle simplement le référentiel git local.

Je soutiens également certaines personnes de mon bureau qui utilisent Flex et l'éditeur Flexbuilder qui repose sur eclipse et egit. Ces instructions sont également pertinentes pour eux.

gview
la source
7
Je n'ai pas édité le fichier de configuration directement, mais j'ai ajouté la clé "branch.master.merge" en utilisant la boîte de dialogue Propriétés ci-dessus. Cela a également fonctionné comme un sharm.
Matthias Wuttke
57

Pour résoudre ce problème dans Eclipse, ouvrez le menu Windows et sélectionnez Afficher la vue / Autres / référentiels Git .

Dans l'onglet Dépôts Git:

  • développez votre référentiel local
  • clic droit sur Remote
  • cliquez sur Create Remote ...
  • Nom distant = origine
  • à côté de l' IRI, appuyez sur le bouton Modifier
  • CTRL+ SPACEsur URI
  • sélectionnez l'emplacement distant
  • appuyez sur Terminer
  • appuyez sur Enregistrer et pousser

Encore une fois, à partir de l'onglet Dépôts Git:

  • clic droit sur l' origine
  • sélectionnez Configurer Fetch ...
  • sur le mappage de référence, appuyez sur Modifier (Avancé) ...
  • appuyez sur Add All Branches Spec
  • cochez la case Forcer la mise à jour
  • appuyez sur Terminer

Encore une fois, à partir de l'onglet Dépôts Git:

  • faites un clic droit sur votre référentiel local
  • sélectionnez Propriétés
  • appuyez sur Nouvelle entrée ...
  • entrez les deux touches suivantes:

(1)

Key = branch.master.remote
Value = origin

(2)

Key = branch.master.merge
Value = refs/heads/master
Marco Lackovic
la source
4
Pour moi, c'est la meilleure réponse à la question.
Kashif Nazar
1
La réponse acceptée semble manquer certaines étapes qui sont couvertes ici.
FableBlaze
47

Cela a fonctionné pour moi:

Cliquez avec le bouton droit sur ma branche locale extraite qui ne peut pas extraire (la mienne s'appelle "développement") Sélectionnez "Configurer la branche ..." Pour "Branche amont:", j'ai sélectionné "refs / heads / development" Pour "Remote:" J'ai sélectionné "origine" Gauche "Rebase" décoché Appuyez sur OK

Maintenant, ma fenêtre de préférences de configuration ressemble à celle de la réponse de gview.

Zip184
la source
14
J'ai trouvé "Configure Branch ..." très difficile à trouver. J'ai réussi à le trouver en allant dans la vue "Git Repositories", en développant les branches, en local puis en faisant un clic droit sur la branche
Edd
18

J'ai également eu des problèmes pour le configurer. Cela fonctionne maintenant donc je vais partager mon fichier de configuration. Je pense que cela aidera:

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

Remarque: https://github.com/chelder86/ArcadeTongame.gitdoit être remplacé par votre propre URL de clonage HTTPS.

chelder
la source
Un fichier de configuration fonctionnel est exactement ce que j'avais besoin de regarder. Merci!
Martin Tuskevicius
10

Même problème. Voici comment je l'ai résolu dans eclipse / egit :

À l'origine, j'ai cloné un dépôt distant sur mon ordinateur de bureau (mon propre dépôt, mais sur un serveur distant). Ensuite, j'ai créé une nouvelle branche de projet de dépôt localement ("testing"), et l'ai poussée vers le référentiel distant. Le dépôt distant cloné sur mon ordinateur portable, est passé à la branche "testing", a travaillé dessus, etc., a poussé, puis est revenu au bureau. Quand j'ai essayé d'extraire les changements de "test" du serveur, j'ai obtenu msg "branche locale non configurée pour l'extraction".

Le problème est que sur le bureau, le "test" est uniquement local, n'a pas d'informations d'URL distantes, donc ne peut pas extraire les modifications.

J'ai résolu cela dans eclipse (egit) par:

  1. suppression de la succursale locale
  2. extraire la branche du dépôt distant en tant que nouvelle branche.

Les étapes étaient:

  • Accédez à la perspective d'exploration du référentiel Git
  • renommer la branche locale "zzz" (paranoïaque, n'aime pas supprimer tant que je ne suis pas sûr d'avoir bien compris!)
  • rt-cliquez sur "Branches", "Passer à", "Nouvelle succursale"
  • dérouler la liste "Source ref", sélectionner la branche "testing" (tirer la stratégie "merge", "Checkout new branch" coché)
  • cliquez sur "terminer"
  • Passez à la perspective habituelle, assurez-vous que mes fichiers sont présents
  • revenir au référentiel Git Explorer et supprimer la branche "zzz"

Remarque: j'utilise Eclipse Indigo. Les étapes peuvent être différentes sur les autres versions.

ian scott-fleming
la source
9

J'ai juste eu le même problème mais la réponse acceptée n'a pas fonctionné pour moi. Voici ce que j'ai fait (bien que je ne puisse pas confirmer si la réponse acceptée a eu un impact car la configuration mise à jour reste):

Développez votre arborescence de référentiels git à partir de la vue 'Git Repositories'.

Faites un clic droit sur 'Télécommandes' et sélectionnez 'Créer une télécommande'

Sélectionnez le bouton radio 'Configurer la récupération' -> 'Ok'

Sélectionnez "Modifier" en face de la zone de texte "URI"

Entrez les détails de votre dépôt git et cliquez sur 'Terminer'

Sélectionnez 'Enregistrer'

Vous devriez maintenant pouvoir extraire du référentiel distant.

Remarque - lorsque j'ai essayé 'Dry-Run' qui, je pense, n'est qu'un test de connexion, cela a échoué mais la traction a toujours fonctionné.

ciel bleu
la source
fonctionne parfaitement. Solution similaire à cette question stackoverflow.com/a/10662106/759452
Adrien Be
3

À propos de la solution de gview:

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

Vous n'avez pas besoin de le trouver vous-même ou de l'ouvrir avec un éditeur de texte.

  • Fenêtre -> Afficher la vue -> Autre -> GIT -> Dépôts Git
  • Développez le dossier de dépôt que vous avez créé.
  • Il contiendra un dossier appelé «Répertoire de travail», développez-le.
  • Il y aura un dossier dans le dossier «Répertoire de travail» appelé «.git» et développez-le.
  • Dans ".git" il y aura "config", clic droit "config" -> ouvrir dans l'éditeur. Le fichier de configuration s'ouvrira directement dans Eclipse où vous pourrez le modifier. J'ai ajouté ce qui suit et maintenant je peux tirer sans erreurs:

[branche "maître"]

remote = origine

merge = refs / heads / master

Mike
la source
2

Ce que j'ai trouvé qui fonctionnait avec eclispe (ce n'est certainement pas la bonne façon de procéder mais cela fonctionne): pousser vers le référentiel distant, supprimer l'espace de travail et le référentiel locaux, importer depuis git à l'aide du dialogue d'importation. L'assistant d'importation s'occupe de tout configurer pour les futures extractions.

Thomas
la source
2

Essayez windows-> Show View-> Navigator. Dans les fenêtres du navigateur, recherchez le dossier bin dans votre projet, puis validez le dossier bin dans github et espérons que cela fonctionnera bien. Essayez de le tirer ou de le récupérer après toutes les tâches ci-dessus.

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

Une alternative pour PULL (évitant l'erreur ci-dessus) est:

  1. FETCH pour mettre à jour votre succursale distante sur votre machine
  2. FUSION de votre succursale locale avec votre succursale distante
    (Équipe -> Fusionner ... -> Suivi à distance -> origine / succursale )
Roche
la source
2

vue du référentiel git -> + branches -> local -> sélectionnez la branche locale que vous souhaitez attribuer à la branche distante -> clic droit -> sélectionnez la branche distante (probablement l'origine) et la branche amont

piotrek
la source
cela l'a fait dans eclipse sans aucune des modifications du "fichier de configuration". Devrait être la réponse acceptée, car la question est spécifique à l'éclipse.
josephus
1

La solution la plus simple que j'ai trouvée lors de l'utilisation du plugin Eclipse Git est la suivante:

  1. Cliquez avec le bouton droit sur le projet et sélectionnez Équipe> Push Branch
  2. Assurez-vous que la case à côté de «Configurer en amont pour le push and pull» est cochée
  3. Cliquez sur suivant et terminez le push.

Une fois cela terminé, la branche sera désormais correctement configurée pour l'extraction.

Francis Brennan
la source
1

éditez le fichier de configuration dans le dossier .git de votre référentiel comme ceci.

remplacez-le https://github.com/your/uripar l'URI de votre référentiel github.

bonne chance.

[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: utiliser l'idée, oublier l'éclipse

TGich
la source
0

Vous devez remplacer votre fichier de configuration par ce code .. votre fichier de configuration est situé dans le dossier «git» de votre référentiel. Le dossier 'git' est caché, vous devez donc d'abord afficher les fichiers cachés. Ouvrez le fichier de configuration et écrivez ces 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
vipère
la source
0

J'ai eu le même problème dans Eclipse Neon. Mais aucune solution n'a fonctionné pour moi. J'ai eu le problème lorsque j'ai changé de branche du projet , puis cela a généré cette erreur.La solution que j'ai essayée est:

  1. Accédez au fichier project / .git / config .
  2. Si rebase = false , supprimez-le.
  3. Rafraîchissez votre projet.
  4. Faites git pull ou pull from eclipse.
  5. Erreur résolue.

PS: Comme il s'agit d'un ancien fil, il suffit de mettre à jour car cela pourrait venir pour quelqu'un d'autre.

AsthaUndefined
la source
0

Lors de la validation, si vous rencontrez ce problème. Essayez cette approche simple:

  1. Team-> Push to upstream - Une fenêtre contextuelle s'ouvre.
  2. Copiez votre URI et collez-le dans cette fenêtre contextuelle.

Votre branche est configurée pour tirer / pousser. Vos modifications de code seront transmises au référentiel.

Merci

Ganapati prasad
la source