Comment faire pour résoudre git "pas quelque chose que nous pouvons fusionner" erreur

je viens de rencontrer un problème lors de la fusion d'une branche dans master en git. D'abord, j'ai eu le nom de la branche en tapant git ls-remote . Appelons cette branche "nom de la branche". J'ai ensuite lancé la commande git merge branch-name et j'ai obtenu le résultat suivant:

fatal: branch-name - not something we can merge

comment résoudre cette erreur?

181
demandé sur Brian 2013-05-31 21:41:29

16 réponses

comme montré dans Comment" pas quelque chose que nous pouvons fusionner " surgit? , cette erreur peut provenir d'une faute de frappe dans le nom de la branche parce que vous essayez de tirer une branche qui n'existe pas.

Si ce n'est pas le problème (comme dans mon cas), il est probable que vous n'avez pas de copie locale de la branche que vous souhaitez fusionner. Git exige une connaissance locale des deux branches afin de fusionner ces branches. Vous pouvez résoudre cela en vérifiant la branche à fusionner et ensuite retourner à la branche dans laquelle vous voulez fusionner.

git checkout branch-name
git checkout master
git merge branch-name

cela devrait fonctionner, mais si vous recevez une erreur disant

error: pathspec 'remote-name/branch-name' did not match any file(s) known to git.

vous devez récupérer la télécommande (probablement, mais pas nécessairement, "origine") avant de vérifier la branche:

git fetch remote-name
228
répondu Brian 2017-05-23 12:10:11

c'est une suggestion stupide, mais assurez-vous qu'il n'y a pas de typographie dans le nom de la branche!

70
répondu endless 2015-08-25 20:40:06

en tirant d'une télécommande en amont, git fetch --all a fait le tour pour moi:

git remote add upstream [url to the original repo]
git checkout [branch to be updated]
git fetch --all
git merge upstream/[branch to be updated]

dans d'autres cas, j'ai trouvé que l'erreur" Not something we can merge " se produira aussi si la branche distante (origin, upstream) n'existe pas. Cela peut sembler évident, mais vous pourriez vous retrouver à faire git merge origin/develop sur un repo qui n'a que master .

48
répondu Eneko Alonso 2017-02-13 22:10:49

j'ai eu ce problème aussi. La branche ressemblait à 'username / master' qui semblait confondre git car elle ressemblait à une adresse distante que j'avais définie. Pour moi utiliser ce

git merge origin/username/master

a parfaitement fonctionné.

15
répondu spekulatius 2014-12-04 23:39:05

vous obtenez cette erreur parce que la branche que vous voulez fusionner n'existe pas sur votre dépôt local.

donc, d'abord la caisse le brach vous voulez fusionner dans la branche de maître par la commande suivante:

git checkout branch_name_to_merge

après cela, essayez de le fusionner avec master branch par la commande suivante:

git merge branch_name_to_merge
4
répondu Bilal Ahmed Yaseen 2016-09-15 13:07:12

cela peut arriver parce que cette succursale n'est pas sur votre local. avant de fusionner, utiliser

git fetch origin
4
répondu Alok Kamboj 2018-04-11 08:07:26

cette erreur suggère que la branche d'où vous voulez fusionner les changements (i.e. dans votre cas branche-nom) n'est pas présente dans votre local, donc vous devriez vérifier la branche et récupérer les changements locaux. Départ vers votre branche principale et fetch, puis suivez les étapes ci-dessous:

git checkout branch-name
git pull
git checkout new-branch-name
git merge branch-name
4
répondu Amar Magar 2018-08-03 06:32:03

j'ai eu cette erreur quand j'ai fait un git merge BRANCH_NAME "some commit message" - j'avais oublié d'ajouter le drapeau-m pour le message de propagation, donc il a pensé que le nom de la branche incluait le commentaire.

3
répondu purelylogical 2014-03-03 13:25:59

si la chaîne contenant la référence est produite par une autre commande Git (ou toute autre commande shell d'ailleurs), assurez-vous qu'elle ne contient pas de port de retour à la fin. Vous devrez l'enlever avant de passer la chaîne à "git merge".

notez que c'est assez évident quand cela arrive, parce que le message d'erreur sur 2 lignes:

merge: 26d8e04b29925ea5b59cb50501ab5a14dd35f0f9
 - not something we can merge
2
répondu ocroquette 2014-09-24 10:10:39

pour la postérité: comme disait AxeEffect... si vous n'avez pas de fautes de frappe, vérifiez si vous avez des caractères ridicules dans le nom de votre branche locale, comme des virgules ou des apostrophes. Exactement ce qui m'est arrivé tout à l'heure.

1
répondu Elder Smash 2015-07-13 14:37:37

je suggère de vérifier si vous êtes en mesure de passer à la branche que vous essayez de fusionner avec.

j'ai eu cette erreur même si la branche avec laquelle je voulais fusionner était dans un dépôt local et il n'y avait pas de fautes d'orthographe.

j'ai ignoré mes changements locaux pour pouvoir passer à la branche (Stash ou commit peuvent aussi être préférés). Après cela je suis revenu à la branche initiale, et la fusion a été réussie.

1
répondu eaykin 2016-08-17 07:43:14

nous avons eu cette erreur parce que nous avions une virgule (,) dans le nom de la branche. Nous avons supprimé la branche locale, puis nous l'avons vérifiée sous un nouveau nom sans la virgule. Nous avons réussi à le fusionner avec succès.

1
répondu Doug 2016-10-12 21:53:00

pour moi le problème s'est produit quand j'ai essayé ceci:

git merge -s ours --no-commit --allow-unrelated-histories <remote name>/develop

donc en fait j'aurais dû écrire master au lieu de develop , parce que master était le nom de la branche de Subtree,pas ma branche actuelle.

0
répondu Levon Petrosyan 2017-11-15 09:14:42

cette réponse n'est pas liée ci-dessus question, mais je suis face à ce genre de problème peut-être cet usage complet pour quelqu'un , je suis fusionner ma branche de fonctions à maîtriser comme ci-dessous

$ git merge fix-load
merge: fix-load - not something we can merge

pour cela, je suis à la recherche avant tout des solutions mais ne travaille personne,

finalement j'ai trouvé le problème sur l'erreur d'orthographe sur le nom de ma branche (en fait le nom de la branche de fusion est fix-loads).

0
répondu yala ramesh 2018-08-29 13:23:45

la méthode ci-dessous a fonctionné pour moi à chaque fois.

git checkout master
git pull
git checkout branch-name-to-be-merged
git pull
git checkout branch-name
git pull
git merge branch-name-to-be-merged
0
répondu R.N.V. 2018-09-14 07:15:16

j'ai essayé

git merge <branch-name> "Commit-message"

au lieu de

git merge <branch-name> -m "Commit-message"
-1
répondu Deepak Prathapani 2018-08-16 12:41:37