Comme indiqué dans Comment «ne peut-on pas fusionner»? , cette erreur peut provenir d'une faute de frappe dans le nom de la branche car 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 ne disposiez pas d'une copie locale de la branche que vous souhaitez fusionner. Git nécessite une connaissance locale des deux branches afin de fusionner ces branches. Vous pouvez résoudre ce problème en consultant la branche à fusionner, puis en revenant à la branche dans laquelle vous souhaitez fusionner.
git checkout branch-name
git checkout master
git merge branch-name
Cela devrait fonctionner, mais si vous recevez une erreur indiquant
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
git fetch
première avant de fusionner la branche distante.Git requires local knowledge of both branches in order to merge those branches
C'est une suggestion stupide, mais assurez-vous qu'il n'y a pas de faute de frappe dans le nom de la branche!
la source
En tirant d'une télécommande en amont, a
git fetch --all
fait l'affaire pour moi:Dans d'autres cas, j'ai trouvé que l'erreur "Pas quelque chose que nous pouvons fusionner" se produira également si la branche distante (origine, amont) n'existe pas. Cela peut sembler évident, mais vous pourriez vous retrouver à faire
git merge origin/develop
sur un repo qui a seulementmaster
.la source
git remote add upstream
était la chose importante que je manquais qui a résolu le problème pour moi. Je pense qu'une erreur courante est de supposer qu'une fourchette sait automatiquement d'où elle provient.J'avais aussi ce problème. La branche ressemblait à «nom d'utilisateur / maître», ce qui semblait confondre git car elle ressemblait à une adresse distante que j'ai définie. Pour moi en utilisant cela
a parfaitement fonctionné.
la source
origin/
le nom de la succursale distante./
.La méthode ci-dessous fonctionne pour moi à chaque fois.
la source
Cela peut arriver parce que cette branche n'est pas sur votre section locale. avant de fusionner l'utilisation
la source
Vous obtenez cette erreur car la branche que vous souhaitez fusionner n'existe pas sur votre référentiel local.
Donc, commencez par extraire le brach que vous souhaitez fusionner dans la branche principale par la commande suivante:
Après cela, essayez de le fusionner avec la branche principale à l'aide de la commande suivante:
la source
checkout
la brancheCette erreur suggère que la branche à partir de laquelle vous souhaitez fusionner les modifications (c'est-à-dire dans votre cas le nom de la branche) n'est pas présente dans votre section locale, vous devez donc extraire la branche et récupérer les modifications locales. Passez à votre branche principale et récupérez, puis suivez les étapes ci-dessous:
la source
Cette réponse n'est pas liée à la question ci-dessus, mais j'ai rencontré un problème similaire, et cela sera peut-être utile à quelqu'un. J'essaie de fusionner ma branche de fonctionnalité pour la maîtriser comme ci-dessous:
pour cela a obtenu le message d'erreur suivant:
J'ai surtout cherché des solutions, mais aucune n'a fonctionné.
Enfin, j'ai réalisé que la cause du problème est une faute d'orthographe sur le nom de ma branche (en fait, le nom de la branche de fusion est
fix-loads
).la source
git merge origin/fix-loads
fonctionné.J'ai eu cette erreur lorsque j'ai fait un
git merge BRANCH_NAME "some commit message"
- j'avais oublié d'ajouter l'indicateur -m pour le message de validation, donc il pensait que le nom de la branche incluait le commentaire.la source
À mon avis, j'avais manqué de cartographier ma succursale locale avec un dépôt à distance. je l'ai fait ci-dessous et cela a bien fonctionné.
la source
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 chariot de retour à la fin. Vous devrez le supprimer avant de passer la chaîne à "git merge".
Notez que cela est assez évident lorsque cela se produit, car le message d'erreur apparaît sur 2 lignes:
la source
Nous avons eu cette erreur car nous avions une virgule (,) dans le nom de la branche. Nous avons supprimé la branche locale, puis l'avons revérifiée sous un nouveau nom sans la virgule. Nous avons réussi à le fusionner avec succès.
la source
Pour la postérité: comme l'a dit AxeEffect ... si vous n'avez pas de faute de frappe, vérifiez si vous avez des caractères ridicules dans le nom de votre branche locale, comme des virgules ou des apostrophes. C'est exactement ce qui m'est arrivé tout à l'heure.
la source
Je suggère de vérifier si vous pouvez passer à la branche avec laquelle vous essayez de fusionner.
J'ai eu cette erreur même si la branche avec laquelle je voulais fusionner était dans le référentiel local et qu'il n'y avait aucune erreur d'orthographe.
J'ai ignoré mes modifications locales pour pouvoir passer à la branche (Stash ou commit peut également être préféré). Après cela, je suis revenu à la branche initiale et la fusion a réussi.
la source
Pour moi, le problème est survenu lorsque j'ai essayé ceci:
Donc, en fait, j'aurais dû écrire à la
master
place dedevelop
, car master était le nom de branche de Subtree, pas ma branche réelle.la source
Cela peut sembler étrange, mais n'oubliez pas de configurer votre email et votre nom git:
la source
Pour moi, le problème était les «doubles guillemets» dans le message de fusion. Donc, quand j'ai enlevé la double marque, tout fonctionnait comme par magie. J'espère aider quelqu'un. (Désolé pour mon mauvais anglais)
la source
J'avais un arbre de travail avec maître et une autre branche vérifiée dans deux dossiers de travail différents.
Si vous devez simplement fusionner le dernier commit:
Et c'est la même chose que ce que j'ai toujours fait:
la source
La branche que vous essayez de fusionner peut ne pas être identifiée par votre git actuellement, alors effectuez
git branch
et voyez si la branche que vous souhaitez fusionner n'existe pas, sinon effectuez-lagit pull
et maintenant si vous le faitesgit branch
, la branche sera visible maintenant, et maintenant vous jouezgit merge <BranchName>
la source