Un collègue a poussé une nouvelle branche distante vers Origin/dev/homepage et je ne la vois pas lorsque je lance:
$ git branch -r
Je vois encore des branches distantes préexistantes.
Je suppose que cela est dû au fait que mes références distantes locales ne sont pas à jour. Par conséquent, lorsque j’ai exécuté un tir git, rien ne s’est passé, car ce tir ne tire que sur la branche en cours de travail, est-ce correct? Contrairement à git Push qui pousse toutes les branches qui ont changé vers la branche distante correspondante?
Commencez par vérifier 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 commande git fetch
: il convient de télécharger les références de branche depuis le référentiel distant.
Si votre branche distante n’apparaît toujours pas, revérifiez (dans le ls-remote
sortie) quel est le nom de la branche sur la télécommande et, en particulier, s'il commence par refs/heads/
. En effet, par défaut, la valeur de remote.<name>.fetch
est:
+refs/heads/*:refs/remotes/Origin/*
de sorte que seules les références distantes dont le nom commence par refs/heads/
sera mappé localement en tant que références de suivi à distance sous refs/remotes/Origin/
_ (c’est-à-dire qu’ils deviendront des branches de suivi à distance)
Vérifier si .git/config
contient
[remote "Origin"]
url = …
fetch = +refs/heads/master:refs/remotes/Origin/master
Si oui, changez-le pour le dire
[remote "Origin"]
url = …
fetch = +refs/heads/*:refs/remotes/Origin/*
Ensuite, vous devriez pouvoir l'utiliser:
$ git fetch
remote: Counting objects: …
remote: Compressing objects: ..
Unpacking objects: …
remote: …
From …
* [new branch] branchname -> Origin/branchname
$ git checkout branchname
Branch branchname set up to track remote branch branchname from Origin.
Switched to a new branch 'branchname'
Effectuer une mise à jour distante git mettra également à jour la liste des branches disponibles à partir du référentiel distant.
Si vous utilisez TortoiseGit, à partir de la version 1.8.3.0, vous pouvez utiliser "Git -> Sync". Un bouton "Mise à jour à distance" apparaît dans le coin inférieur gauche de la fenêtre. 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.
J'ai le même problème parfois.
La réponse la plus simple est:
git fetch Origin <branch_name>
Cela semble banal, mais mon problème était que je n'étais pas dans le bon projet. Assurez-vous d'être dans le projet auquel vous vous attendez. sinon, vous ne pourrez pas arracher les branches correctes.
Ce qui a finalement fini par fonctionner pour moi a été d’ajouter le nom du référentiel distant au git fetch
commande, comme ceci:
git fetch core
Maintenant, vous pouvez tous les voir comme ceci:
git branch --all
J'ai utilisé la force brute et enlevé la télécommande puis l'a ajouté
git remote rm <remote>
git remote add <url or ssh>