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… » :
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.
One Response to Lier une branche Git locale à la branche remote correspondante