Logo Git

Lier une branche Git locale à la branche remote correspondante

Publié dans Geekeries | Marqué avec , , ,
Share

Quel est le problème ?

Imaginez que vous avez créé une branche sur votre reposiroty Git nommée « MaBrancheAMoi ». Et que lorsque vous désirez faire un « pull », Git vous renvoit le message d’erreur suivant :

You asked me to pull without telling me which branch you
want to merge with, and ‘branch.MaBrancheAMoi.merge’ in
your configuration file does not tell me, either. Please
specify which branch you want to use on the command line and
try again (e.g. ‘git pull ‘).

Ce qui le plugin EGit d’Eclipse nous traduit généralement par le message d’erreur suivant :

no values for key « branch.MaBrancheAMoi.merge » found in configuration

Cela est dû au fait que vous avez une branche locale, mais Git ne peut pas savoir avec quelle branche en ligne (remote) la lier.

Généralement, en local vous avez toujours une branche « master » qui correspond à la branche remote « origin/master ». On a la configuration suivante :

branch.master.merge = refs/heads/master
branch.master.remote = origin

Remarquez que pour la configuration « remote », on précise simplement « origin », ce qui signifie « origin/<nom de la branche> », donc ici « origin/master ».

La configuration pour une nouvelle branche est censée se faire automatiquement, mais ce n’est visiblement pas le cas tout le temps (je n’ai pas encore eu le temps d’aller plus loin à ce sujet), et c’est pourquoi une erreur peut se produire. Pour corriger le problème il faut donc ajouter la configuration suivante:

branch.MaBrancheAMoi.merge = refs/heads/MaBrancheAMoi
branch.MaBrancheAMoi.remote = origin

Corriger le problème via Eclipse

Ce qui se fait facilement sur Eclipse : dans Window > Preferences > Team > Git onglet « Repository Settings », sélectionner le bon repository et cliquer sur « New Entry… » :

Configuration de Git dans Eclipse

Ajouter une valeur de configuration à Git dans Eclipse

Key : branch.MaBrancheAMoi.merge
Value : refs/heads/MaBrancheAMoi

Puis à nouveau :

Key : branch.MaBrancheAMoi.remote
Value : origin

Corriger le problème directement via Git

Pour corriger ce problème (et apprendre à gérer les branches par la même occasion) en ligne de commandes, vous pouvez lire : Adding And Removing Remote Branches.

Une réponse à Lier une branche Git locale à la branche remote correspondante

  1. Sonix

    Super explication, vous m’enlevez une épine du pieds et petit à petit je comprends mieux le fichier de configuration de git et son fonctionnement.
    Actuellement je trouve que le plugin EGit laisse des choses assez obscures pour les nouveau utilisateurs de Git.
    Maintenant mes branches remote se synchronisent avec les locales 🙂 (je trouvais étrange qu’elles ne le fassent pas)….
    Merci beaucoup en tout cas !

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*