J'ai essayé git branch -r
, mais cela ne répertorie que les branches distantes que j'ai suivies localement. Comment trouver la liste de ceux que je n'ai pas? (Peu importe que la commande répertorie toutes les branches distantes ou uniquement celles qui ne sont pas suivies.)
git
branch
git-branch
remote-branch
James A. Rosen
la source
la source
git fetch
etgit remote update
ne récupérez pas toutes les branches de la télécommande? Parce que sinon, vous pouvez simplement chercher puis utilisergit branch -r
...git branch -r
me montrait seulement des branches éloignées que j'avais suivies localement. Ça fonctionne mieux maintenant.Réponses:
Pour la grande majorité [1] des visiteurs ici, la réponse correcte et la plus simple à la question "Comment lister toutes les branches distantes dans Git 1.7+?" est:
Pour une petite minorité [1]
git branch -r
ne fonctionne pas. Sigit branch -r
cela ne fonctionne pas, essayez:Si
git branch -r
cela ne fonctionne pas, alors peut-être que Cascabel dit « vous avez modifié le refspec par défaut, de sorte quegit fetch
etgit remote update
ne va pas chercher toutes lesremote
branches d » » .[1] Au moment de la rédaction de cette note de bas de page 2018-février, j'ai regardé les commentaires et constaté que les
git branch -r
travaux pour la grande majorité (environ 90% ou 125 sur 140 ).Si
git branch -r
cela ne fonctionne pas, la vérificationgit config --get remote.origin.fetch
contient un caractère générique (*
) selon cette réponsela source
git ls-remote [url]
, vous n'avez pas à le cloner d'abord :)git branch -r
puisque c'est la réponse correcte et la plus simple, le demandeur a eu un cas particulier où il a modifié le comportement de lagit branch -r
plupart des utilisateurs qui viennent ici ne le verront pas avoirgit branch -r
n'a pas non plus fonctionné pour moi. Il s'agit simplement de répertorier les succursales déjà suivies localement. Maisgit ls-remote --heads
répertorié toutes les branches disponibles sur le référentiel distant ...git ls-remote
(et non répertoriées surgit branch -r
), il faut exécutergit config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
avant de récupérer comme décrit sur stackoverflow.com/a/26649770/873282 .git fetch --all
avant d'obtenir toutes les branches distantes actuelles.remote show
affiche toutes les branches de la télécommande, y compris celles qui ne sont pas suivies localement et même celles qui n'ont pas encore été récupérées.Il essaie également d'afficher l'état des branches par rapport à votre référentiel local:
la source
branch_that_is_not_tracked tracked
?branch_that_is_not_tracked
est une branche qui n'est suivie par aucune branche git locale. Cependant, il a été récupéré dans le référentiel local (il existe donc une branche distante). Pour une raison étrange,git remote show
cet état est appelétracked
, même s'il n'y a pas de branche locale qui suit la télécommande. Dans ce cas, l'opposé detracked
isnew
signifie "non récupéré".git branch -r
suggère qu'il ya une branche éloignée encore, maisgit remote show origin
montre querefs/remotes/origin/my-now-dead-branch stale (use 'git remote prune' to remove)
. Beaucoup plus utile!la source
git branch -r
, ce que le PO a dit ne pas être assez bon.git branch -a
etgit branch -r
listez toutes les branches distantes pour moi, je ne sais pas si ce que l'OP a dit est vrai. Je viens de configurer un référentiel de test et de le vérifier (il n'y avait que master tracking origin / master mais j'ai toujours vu toutes les branches distantes avec les deux drapeaux).git fetch
suivigit branch -a
, ce qui n'a commencé que récemment à échouer pour moi. Peut-être que le comportement de Git a été changé?L'utilisation
git branch -r
répertorie toutes les branches distantes etgit branch -a
répertorie toutes les branches locales et distantes. Ces listes deviennent cependant obsolètes. Pour maintenir ces listes à jour, exécutezqui mettra à jour votre liste de succursales locales avec toutes les nouvelles de la télécommande et supprimera celles qui ne sont plus là. L'exécution de cette commande de mise à jour sans --prune récupérera de nouvelles branches mais ne supprimera plus celles qui ne se trouvent plus sur la télécommande.
Vous pouvez accélérer cette mise à jour en spécifiant une télécommande, sinon elle extraira les mises à jour de toutes les télécommandes que vous avez ajoutées, comme ceci
la source
Mais
git branch -ar
devrait le faire.
la source
-r
renvoie uniquement les branches distantes.-a
renvoie les succursales locales et distantes. Ainsi,git branch -a
et lesgit branch -ar
deux produisent la même sortie.Vous pouvez également faire
git fetch
suivi d'ungit branch -r
. Sans chercher, vous ne verrez pas les branches les plus récentes.la source
git fetch --all
avoir toutes les succursales actuellesBranchement Git - Branches distantes
Documentation Git .
la source
heads/
enrefs/heads/features/my-branch
, merci!Le moyen le plus simple que j'ai trouvé:
la source
TL; TR;
Voici la solution de votre problème:
ou:
la source
La meilleure commande à exécuter est
git remote show [remote]
. Cela montrera toutes les succursales, distantes et locales, suivies et non suivies.Voici un exemple d'un projet open source:
Si nous voulons simplement obtenir les branches distantes, nous pouvons les utiliser
grep
. La commande que nous voudrions utiliser serait:Avec cette commande:
Vous pouvez également créer un alias pour cela:
Ensuite, vous pouvez simplement courir
git branches
.la source
Avec Git Bash , vous pouvez utiliser:
la source
Essaye ça...
la source
Exécutez simplement une
git fetch
commande. Il tirera toutes les branches distantes vers votre référentiel local, puis fera unegit branch -a
liste de toutes les branches.la source
S'il y a une branche distante dont vous savez qu'elle doit être répertoriée, mais qu'elle n'est pas répertoriée, vous pouvez vérifier que votre origine est correctement configurée avec ceci:
Si tout va bien, vous devriez peut-être exécuter une mise à jour:
En supposant que cela fonctionne correctement, vous devriez pouvoir faire ce que disent les autres réponses:
la source
En utilisant cette commande,
Il répertorie toutes les branches distantes, y compris les messages de validation et les ID de validation auxquels se réfèrent les branches distantes.
la source
J'utiliserais:
Cette commande vous montre non seulement la liste de toutes les branches, y compris les branches distantes commençant par
/remote
, mais elle vous fournit également des*
commentaires sur ce que vous avez mis à jour et les derniers commentaires de validation.la source
Assurez-vous que l'origine distante que vous répertoriez est bien le référentiel que vous souhaitez et non un clone plus ancien.
la source
J'ai fini par faire un pipeline shell mess pour obtenir ce que je voulais. Je viens de fusionner les branches de la télécommande d'origine:
la source
La réponse acceptée fonctionne pour moi. Mais j'ai trouvé plus utile de trier les commits en commençant par les plus récents.
git branch -r --sort=-committerdate
la source