Votre configuration spécifie de fusionner avec le de la télécommande, mais aucune référence de ce type n’a été extraite.

Je reçois cette erreur pour tirer:

Votre configuration spécifie de fusionner avec la référence «refs / heads / feature / Sprint4 / ABC-123-Branch» depuis la télécommande, mais aucune référence de ce type n’a été récupérée.

Cette erreur ne vient pour aucune autre twig.
La particularité de cette twig est qu’elle est créée à partir de la validation précédente d’une autre twig.

Mon fichier de configuration ressemble à ceci:

[core] repositoryformatversion = 0 filemode = false bare = false logallrefupdates = true symlinks = false ignorecase = true hideDotFiles = dotGitOnly [remote "origin"] url =  fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master [branch "new-develop"] remote = origin merge = refs/heads/new-develop [branch "feature/Sprint4/ABC-123-Branch"] remote = origin merge = refs/heads/feature/Sprint4/ABC-123-Branch 

Que faire

Cela dépend de ce que vous voulez . Voir la section de discussion ci-dessous. Vous pouvez:

  • créer ou recréer la twig sur la télécommande, ou
  • supprimer votre twig locale, ou
  • tout ce à quoi vous pouvez penser.

Discussion

Vous devez exécuter git pull (si vous git merge vous recevriez un message d’erreur différent, ou pas de message d’erreur du tout).

Ce qui est arrivé ici, c’est que votre amont – la télécommande que vous appelez d’ origin – n’a plus, ou peut-être jamais (il est impossible de distinguer uniquement cette information) une twig nommée feature/Sprint4/ABC-123-Branch .

Lorsque vous exécutez git fetch , votre Git contacte un autre Git, basé sur la ligne d’ url située sous la section [remote "origin"] de votre configuration. Ce Git exécute une commande ( upload-pack ) qui, entre autres, envoie à votre Git une liste de toutes les twigs. Vous pouvez utiliser git ls-remote pour voir comment cela fonctionne (essayez, c’est éducatif). Voici un extrait de ce que j’obtiens lorsque je l’exécute sur un repository Git pour git lui-même:

 $ git ls-remote origin From [url] bbc61680168542cf6fd3ae637bde395c73b76f0f HEAD 60115f54bda3a127ed3cc8ffc6ab6c771cbceb1b refs/heads/maint bbc61680168542cf6fd3ae637bde395c73b76f0f refs/heads/master 5ace31314f460db9aef2f1e2e1bd58016b1541f1 refs/heads/next 9e085c5399f8c1883cc8cdf175b107a4959d8fa6 refs/heads/pu dd9985bd6dca5602cb461c4b4987466fa2f31638 refs/heads/todo [snip] 

Les refs/heads/ entrées listent toutes les twigs qui existent sur la télécommande, 1 avec les identifiants de validation correspondants (pour les refs/tags/ entrées, les ID peuvent pointer sur des objects de balises plutôt que sur des commits).

Votre Git prend chacun de ces noms de twig et le modifie en fonction de la ou des lignes d’ fetch la même section remote . Dans ce cas, votre Git remplace les refs/heads/master par des refs/remotes/origin/master , par exemple. Votre Git fait cela avec chaque nom de twig qui se présente.

Il enregistre également les noms d’origine dans le fichier spécial FETCH_HEAD (vous pouvez voir ce fichier si vous .git coup d’oeil dans votre propre répertoire .git ). Ce fichier enregistre les noms et identifiants récupérés.

La commande git pull est conçue comme un raccourci pratique: elle exécute git fetch sur la télécommande appropriée, puis git merge (ou, si cela lui est demandé, git rebase ) avec les arguments nécessaires à la fusion (ou à la [branch ...] section. Dans ce cas, votre [branch "feature/Sprint4/ABC-123-Branch"] dit d’aller chercher de l’ origin , puis de fusionner avec l’ID trouvé sous le nom refs/heads/feature/Sprint4/ABC-123-Branch .

Comme rien n’a été trouvé sous ce nom, git pull plaint et s’arrête.

Si vous avez exécuté cette opération en deux étapes distinctes, Git git rebase et Git git rebase (ou git rebase ), votre Git examinera vos remotes/origin/ succursales distantes en mémoire cache pour voir à quoi fusionner ou sur lesquelles vous souhaitez effectuer une fusion. S’il y avait une telle succursale à la fois, vous pouvez toujours avoir la twig de suivi à distance. Dans ce cas, vous ne recevrez pas de message d’erreur. S’il n’y avait jamais une telle twig, ou si vous avez lancé git fetch avec --prune (qui supprime les twigs de suivi à distance mortes), afin de ne pas avoir de twig de suivi à distance correspondante, vous recevriez une plainte, mais à l’ origin/feature/Sprint4/ABC-123-Branch place.

Dans les deux cas , nous pouvons conclure que la feature/Sprint4/ABC-123-Branch n’existe pas maintenant sur l’ origin nommée à distance.

Il a probablement existé à un moment donné et vous avez probablement créé votre twig locale à partir de la twig de suivi à distance. Si oui, vous avez probablement encore la twig de suivi à distance. Vous pourriez chercher à savoir qui a supprimé la twig de la télécommande et pourquoi, ou vous pourriez simplement pousser quelque chose pour la recréer, ou supprimer votre twig de suivi à distance et / ou votre succursale locale.


1 Eh bien, tout ce qu’il va admettre , au moins. Mais à moins qu’ils n’aient spécifiquement caché des références, la liste comprend tout.

Vérifiez si votre succursale distante est disponible pour tirer. J’ai eu le même problème, enfin réalisé que la twig distante a été supprimée par quelqu’un.

Cela peut également arriver si vous / quelqu’un a renommé la twig. Suivez donc ces étapes (si vous savez que le nom de la twig est renommé) En supposant que le nom de la twig précédente est un nom de twig wrong-branch-name et que quelqu’un l’a renommé en tant que nom de wrong-branch-name correct-branch-name .

 git checkout correct-branch-name 

git pull (vous verrez ceci “Votre configuration spécifie ..”)

 git branch --unset-upstream 

git push --set-upstream origin correct-branch-name

git pull (vous ne recevrez pas le message précédent)

Dans mon cas, je manquais simplement de validation initiale sur la twig distante, donc la twig locale ne trouvait rien à tirer et elle donnait ce message d’erreur.

J’ai fait:

 git commit -m 'first commit' // on remote branch git pull // on local branch 

J’ai eu une erreur similaire lorsque la cause réelle était que mon disque était plein. Après avoir supprimé certains fichiers, git pull commencé à fonctionner comme prévu.

Si une autre opération fonctionne, cela signifie que votre connexion Internet n’est pas connectée.

Pour moi, cela s’est produit parce que j’ai fusionné un dev de twig avec master en utilisant l’interface web, puis j’ai essayé de synchroniser / tirer avec VSCode qui était ouvert sur la twig dev (c’est bizarre que je ne puisse pas passer en maître sans avoir cette erreur).

 git pull Your configuration specifies to merge with the ref 'refs/heads/dev' from the remote, but no such ref was fetched.' 

Il est logique de ne pas le trouver refs / heads / dev – pour moi, il était plus simple de supprimer le dossier local et de cloner à nouveau.

Pour moi, c’était une question de sensibilité à la casse. Ma twig locale était Version_feature2 au lieu de Version_Feature2. J’ai revérifié ma twig en utilisant le bon boîtier et ensuite git pull a fonctionné.

Cette erreur peut également être reçue lorsque le nom de la twig d’origine a un problème de casse.

Par exemple: la twig d’origine est team1-Team et la twig locale a été passée en tant que team1-team . Ensuite, ce T in -Team et t in -team peut provoquer une telle erreur. C’est arrivé dans mon cas. Ainsi, en changeant le nom local avec le nom de la twig d’origine, l’erreur a été résolue.