Un collègue a poussé une nouvelle branche distante vers origin / dev / homepage et je ne peux pas la voir lorsque je lance:
$ git branch -r
Je vois toujours des branches distantes préexistantes.
Je suppose que c'est parce que mes références distantes locales ne sont pas à jour.Par conséquent, lorsque j'ai exécuté un git pull, rien ne s'est passé puisque git pull ne tire que sur la branche de travail actuelle, correctement? Contrairement à git push qui pousse toutes les branches qui ont des modifications dans la branche distante correspondante?
git
remote-branch
hybride9
la source
la source
git pull
, mercigit fetch <name-of-remote>
fait l'affaire. Sans le nom de la télécommande, cela n'a PAS fonctionné.Réponses:
Tout d'abord, vérifiez que la branche a bien été poussée à distance, en utilisant la commande
git ls-remote origin
. Si la nouvelle branche apparaît dans la sortie, essayez de donner la commandegit fetch
: elle devrait télécharger les références de branche depuis le référentiel distant.Si votre branche distante n'apparaît toujours pas, vérifiez (dans la
ls-remote
sortie) quel est le nom de la branche sur la télécommande et, plus précisément, si elle commence parrefs/heads/
. En effet, par défaut, la valeur deremote.<name>.fetch
est:de sorte que seules les références distantes dont le nom commence par
refs/heads/
seront mappées localement comme références de suivi à distance sousrefs/remotes/origin/
(c'est-à-dire qu'elles deviendront des branches de suivi à distance)la source
git fetch
, git téléchargera les références depuis le référentiel distant par défaut qui a été spécifié dans.git/config
: généralement, il sera appeléorigin
, donc les deux commandes sont équivalentes, mais votre configuration spécifique peut être différente pour une raison quelconque. Non, vous n'avez pas besoin de donnergit fetch
pour chaque branche, car (par défaut) il récupère toutes les branches.git pull
équivaut àgit fetch
+git merge
(ougit rebase
si vous avez changé les valeurs par défaut), vous pouvez donc continuer à utilisergit pull
comme d'habitude, et les nouvelles branches distantes apparaîtront d'elles-mêmes.git ls-remote gerritrepo:project
montre la nouvelle branche distante maisgit branch -a
ne le fait pas ... Je dois faire un autre clone et alors seulement la nouvelle branche apparaîtraVérifiez si
.git/config
contientSi oui, changez-le pour dire
Ensuite, vous devriez pouvoir l'utiliser:
la source
brew tap user/repo
: la copie locale du repo clonée parbrew
avait les paramètres que vous avez mentionnés et il n'était pas possible de voir et d'utiliser les autres branches que j'avais dans mon repo. Merci encore! :) +1!git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
puisgit fetch origin
pour obtenir toutes les branches d' origine .La réponse la plus simple est:
git fetch origin <branch_name>
la source
fatal: Couldn't find remote ref <branch_name>
Faire une mise à jour git remote mettra également à jour la liste des branches disponibles depuis le référentiel distant.
Si vous utilisez TortoiseGit, à partir de la version 1.8.3.0, vous pouvez faire "Git -> Sync" et il y aura un bouton "Remote Update" en bas à gauche de la fenêtre qui apparaîtra. Cliquez dessus. Ensuite, vous devriez pouvoir faire "Git -> Switch / Checkout" et faire apparaître la nouvelle branche distante dans la liste déroulante des branches que vous pouvez sélectionner.
la source
git remote update
est une ancienne façon de faire cela, la nouvelle commande préférée estgit fetch
.Disons que nous recherchons la version / 1.0.5
Quand
git fetch -all
est ne fonctionne pas et que vous ne pouvez pas voir la branche à distance etgit branch -r
ne pas montrer cette branche spécifique.1. Imprimez toutes les références depuis la télécommande (branches, tags, ...):
git ls-remote origin
Devrait vous montrer la branche distante que vous recherchez.La nouvelle branche «release / 1.0.5» apparaît dans la sortie.
2. Forcer la récupération d'une branche distante:
git fetch origin <name_branch>:<name_branch>
Maintenant, vous avez également les références localement, vous vérifiez (ou quoi que ce soit) cette branche.
Travail accompli!
la source
Cela semble trivial, mais mon problème était que je n'étais pas dans le bon projet. Assurez-vous que vous êtes dans le projet auquel vous vous attendez; sinon, vous ne pourrez pas abaisser les bonnes branches.
la source
J'ai utilisé la force brute et supprimé la télécommande, puis je l'ai ajoutée
la source
Ce qui a finalement fonctionné pour moi a été d'ajouter le nom du référentiel distant à la
git fetch
commande, comme ceci:Vous pouvez maintenant les voir tous comme ceci:
la source
Vous pouvez vérifier la branche distante / n git fetch && git checkout remotebranch
la source