web-dev-qa-db-fra.com

Quand git actualise-t-il la liste des branches distantes?

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!

357
BendEg

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
925
centralcmd

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 fetchavant 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.

25
Tim Biegeleisen

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.

12
Oliver

Utilisez git fetch pour récupérer toutes les dernières branches créées.

1
vvv

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.

0
Selman Gun