Mon problème est lié à erreur Fatal Git lors du changement de branche .
J'essaie d'aller chercher une branche distante avec la commande
git checkout -b local-name Origin/remote-name
mais je reçois ce message d'erreur:
fatal: git checkout: la mise à jour des chemins est incompatible avec le changement de branche.
Avez-vous l’intention de vérifier le nom de l’origine/nom-distant qui ne peut pas être résolu en tant que commit?
Si je crée manuellement une branche, puis que je tire la branche distante, cela fonctionne, tout comme créer un nouveau clone et extraire la branche.
Pourquoi cela ne fonctionne-t-il pas sur le référentiel avec lequel je travaille?
Je pense que cela se produit lorsque vous essayez de commander une branche distante dont votre référentiel git local n’a pas encore pris connaissance. Essayer:
git remote show Origin
Si la branche distante que vous souhaitez commander se trouve sous "Nouvelles branches distantes" et non pas "branches distantes suivies", vous devez d'abord les récupérer:
git remote update
git fetch
Maintenant ça devrait marcher:
git checkout -b local-name Origin/remote-name
Syntaxe alternative,
git fetch Origin remote_branch_name:local_branch_name
Après avoir essayé presque tout ce que je pouvais lire dans ce fil sans succès, je suis tombé sur celui-ci: La branche distante n'apparaît pas dans "git branch -r"
Il s'est avéré que mon fichier .git/config était incorrect. Après avoir fait un correctif simple, toutes les branches sont apparues.
Venir de
[remote "Origin"]
url = http://stash.server.com/scm/EX/project.git
fetch = +refs/heads/master:refs/remotes/Origin/master
à
[remote "Origin"]
url = http://stash.server.com/scm/EX/project.git
fetch = +refs/heads/*:refs/remotes/Origin/*
A fait le tour
Vous ne savez pas si cela est utile ou tout à fait pertinent pour votre question, mais si vous essayez d'extraire et d'extraire uniquement une branche nique à partir du référentiel distant, les commandes git suivantes feront l'affaire:
url= << URL TO REPOSITORY >>
branch= << BRANCH NAME >>
git init
git remote add Origin $url
git fetch Origin $branch:Origin/$branch
git checkout -b $branch --track Origin/$branch
aucune de ces solutions n'a fonctionné pour moi. Ma situation est légèrement différente, ma branche distante n’est pas à Origin. mais dans un référentiel différent.
git remote add remoterepo GIT_URL.git
git fetch remoterepo
git checkout -b branchname remoterepo/branchname
conseil: si vous ne voyez pas la branche distante dans la sortie suivante git branch -v -a
, il n'y a aucun moyen de la vérifier.
Confirmé de travailler sur 1.7.5.4
Pour moi, ce qui a fonctionné a été:
git fetch
Ce qui tire toutes les références vers votre machine pour toutes les branches de la télécommande. Alors je pourrais faire
git checkout <branchname>
et cela a fonctionné parfaitement. Similaire à la réponse la plus élue, mais un peu plus simple.
Je soupçonne qu’il n’ya pas de branche distante nommée nom-distant, mais que vous ayez créé par inadvertance une branche locale nommée Origine/nom-distant.
Est-il possible que vous ayez à un moment donné tapé:
branche git Origine/nom-distant
Ainsi, créer une branche locale nommée Origine/nom-distant? Tapez cette commande:
git checkout Origine/nom-distant
Vous verrez soit:
Est passé à la branche "Origine/nom-distant"
ce qui signifie que c'est vraiment une branche locale mal nommée, ou
Remarque: passage à "Origine/Nouvelle correction" qui ne soit pas une branche locale Si vous souhaitez créer une nouvelle branche à partir de cette commande, vous pouvez le faire ( maintenant ou plus tard) en utilisant -b avec la commande checkout à nouveau. Exemple: Git checkout -b
ce qui signifie que c'est vraiment une branche distante.
Ce n'est pas très intuitif mais cela fonctionne bien pour moi ...
mkdir remote.git & cd remote.git & git init
git remote add Origin $REPO
git fetch Origin $BRANCH:refs/remotes/Origin/$BRANCH
ALORS, lancez la commande git branch --track ...
git branch --track $BRANCH Origin/$BRANCH
Pour moi, j'avais une faute de frappe et ma branche distante n'existait pas
Utilisez git branch -a
pour lister les branches distantes
Après avoir récupéré des zillions de temps, les télécommandes encore ajoutées ne sont pas apparues, même si les gouttes étaient dans la piscine. Il s'avère que l'option - tags ne devrait pas être attribué à git remote add
pour une raison quelconque. Vous pouvez le supprimer manuellement du fichier .git/config pour que git fetch crée les références.
Votre problème pourrait-il être lié à cette autre SO question "problème de paiement" ?
c'est-à-dire: un problème lié à:
git checkout -b [<new_branch>] [<start_point>]
_, avec _[<start_point>]
_ faisant référence au nom d'un commit à partir duquel démarrer la nouvelle branche, et _'Origin/remote-name'
_ n'est pas cela.git branch
supporte un point de départ étant le nom d'une branche distante)Remarque: ce que le script checkout.sh dit est:
_ if test '' != "$newbranch$force$merge"
then
die "git checkout: updating paths is incompatible with switching branches/forcing$hint"
fi
_
C'est comme si la syntaxe git checkout -b [] [nom_branch_distant] était en train de renommer la branche et de réinitialiser le nouveau point de départ de la nouvelle branche, ce qui est considéré comme incompatible.