Utiliser git branch --all
affiche toutes les branches distantes et locales. Quand git actualise-t-il cette liste? En tirant/poussant? Et comment l'actualiser avec git bash
?
Merci beaucoup à tous!
Pour montrer à toutes les branches locales et distantes que git (local) connaît
git branch -a
Pour mettre à jour la liste locale des branches distantes:
git remote update Origin --Prune
Je crois que si vous exécutez git branch --all
à partir de la bash, la liste des branches distantes et locales que vous voyez reflétera ce que votre Git local "sait" au moment où vous exécutez la commande. Parce que votre Git est toujours à jour en ce qui concerne les branches locales de votre système, la liste des branches locales sera toujours précise. Toutefois, cela n’est pas nécessairement le cas pour les succursales éloignées. Votre Git local ne connaît que les branches distantes qu’il a vues lors de la dernière extraction (ou tirage). Il est donc possible que vous exécutiez git branch --all
et not voyez une nouvelle branche distante qui est apparue après la dernière fois que vous avez récupéré ou tiré.
Pour vous assurer que votre liste de branches distantes locale et est à jour, vous pouvez effectuer un git fetch
avant exécuter git branch --all
.
Pour plus d'informations, les branches "distantes" qui apparaissent lorsque vous exécutez git branch --all
ne sont pas vraiment distantes du tout, elles sont en réalité locales. Par exemple, supposons qu'il y ait sur la télécommande une branche appelée feature
que vous avez tirée au moins une fois dans votre Git local. Origin/feature
apparaîtra sous la forme d'une branche lorsque vous exécuterez git branch --all
. Mais cette branche est en fait une branche locale Git. Quand vous faites git fetch Origin
cette branche de suivi est mise à jour avec toutes les nouvelles modifications de la télécommande. C'est pourquoi votre état local peut devenir obsolète, car il peut y avoir de nouvelles branches distantes, ou vos branches de suivi peuvent devenir obsolètes.
Le PO n'a pas demandé de nettoyage pour toutes les télécommandes, mais pour toutes les branches de la télécommande par défaut.
Donc, git fetch --Prune
est ce qui devrait être utilisé.
Le réglage de git config remote.Origin.Prune true
rend --Prune
automatique; dans ce cas, seul git fetch
supprimera également les branches distantes de la copie locale. Voir aussi Pruneau automatique avec git fetch ou pull .
Notez que cela ne nettoie pas les branches locales qui ne suivent plus une branche distante. Voir https://stackoverflow.com/a/54484443/869951 pour cela.
Utilisez git fetch
pour récupérer toutes les dernières branches créées.
Si vous utilisez Eclipse et souhaitez voir de nouvelles branches d’amont;
Dans la perspective Git, cliquez avec le bouton droit sur le référentiel git, puis choisissez "Extraire de l’amont". Cela va chercher de nouvelles branches distantes.