Élaguer les branches locales dans Git

Ashok Chapagai 19 décembre 2022
Élaguer les branches locales dans Git

Supposons que votre projet comporte de nombreuses branches qui ont été créées sur la machine locale, mais qui n’existent pas dans le référentiel distant. Vous pouvez facilement supprimer toutes les branches locales qui ne sont pas synchronisées avec le référentiel distant, mais avant cela, vous voudrez peut-être vérifier toutes les branches disponibles sur votre machine locale, vous pouvez exécuter git branch.

Maintenant, pour lister toutes les branches distantes, vous pouvez utiliser la commande git branch -r. Pour obtenir les deux résultats en une seule commande, vous pouvez utiliser la commande git branch -a. Une fois les branches confirmées, vous pouvez continuer avec le reste de l’article.

Supprimer (élaguer) les branches locales dans Git

Vous pouvez exécuter facilement la commande suivante pour élaguer les branches de suivi qui ne se trouvent pas sur le référentiel distant.

git remote prune origin

La commande ci-dessus supprime les branches de suivi qui ne se trouvent pas sur le référentiel distant, mais la branche locale n’est pas encore supprimée. Pour supprimer réellement les branches locales, vous devrez peut-être suivre les étapes supplémentaires expliquées ci-dessous.

  • Liste toutes les branches avec une sortie détaillée,
    git branch -vv
    

    Maintenant, vous dirigez la sortie vers grep pour origin/.* : gone] puisque le statut gone est mis sur les branches qui ne sont pas disponibles dans le référentiel distant mais qui sont disponibles sur la machine locale.

    grep 'origin/.*: gone]'
    
  • Encore une fois, vous dirigez la sortie vers awk (qui est un très bon outil pour formater) comme ci-dessous.
    awk '{print $1}'
    
  • Enfin, vous voulez diriger la sortie vers xargs qui peut être utilisé lorsque vous avez besoin de prendre la sortie d’une commande et de l’utiliser comme argument pour une autre. Vous ne devez pas transmettre la sortie de Étape 2 à la commande git branch -d pour supprimer les branches locales en tant que,
    xargs git branch -d 
    

Par conséquent, la dernière commande à deux lignes pour élaguer et supprimer toutes les branches locales qui ne sont pas disponibles dans le référentiel distant est ci-dessous.

git remote prune origin

Après avoir exécuté la commande ci-dessus, vous souhaiterez peut-être exécuter la commande ci-dessous pour supprimer les branches locales qui ne sont pas disponibles dans le référentiel distant.

git branch -vv | grep 'origin/.*: gone]' | awk '{print $1}' | xargs git branch -d
Ashok Chapagai avatar Ashok Chapagai avatar

Ashok is an avid learner and senior software engineer with a keen interest in cyber security. He loves articulating his experience with words to wider audience.

LinkedIn GitHub

Article connexe - Git Prune