FRFAM.COM >> Famille >> Technologie &Innovation >> Informatique

Comment supprimer une branche dans Git localement et à distance

L'une des caractéristiques les plus fortes de Git est ses branches légères. Ils vous permettent de travailler efficacement sur des étapes de développement parallèles. Un développeur peut même créer des branches individuelles pour des bogues distincts. Dans le temps et dans l'espace, les succursales sont presque sans coût.

De nombreux workflows git traitent à la fois des branches à long terme et temporaires. Par conséquent, il est souvent nécessaire de supprimer des branches pendant le développement. Il est parfois nécessaire de supprimer des branches partagées, d'un serveur distant, ainsi que des branches locales.

Pourquoi supprimer une branche ?

Tout d'abord, si vous maîtrisez encore git, il y a de fortes chances que vous créiez une branche et que vous décidiez ensuite que vous n'en aviez pas besoin. Ou vous expérimentez peut-être des branches et souhaitez nettoyer après vous-même. C'est bien puisque la création de branches dans git est une opération légère. Il est très rapide et utilise efficacement l'espace disque.

Par conséquent, de nombreux workflows de développement git encouragent la création de branches, même pour des tâches très petites ou courtes. Par exemple, une stratégie courante consiste à créer une branche pour une seule correction de bogue. Cela est vrai même si cela implique qu'un seul auteur effectue une modification d'une ligne dans un seul fichier.

Pour ces raisons, la création et la suppression de branches sont des opérations qui doivent être bien comprises. Il se peut que vous supprimiez souvent des branches au cours d'un workflow de développement typique.

Un exemple de référentiel avec des branches

Les exemples suivants font référence à un exemple de référentiel avec la structure suivante :

$ git branch -vv 
1 dev 1ae41e8 [origine/dev] premier commit
2 * main 1ae41e8 [origine/main] premier commit

Notez que chaque branche locale a une branche en amont correspondante à partir de la télécommande :origine .

Supprimer une branche à l'aide de la ligne de commande

La syntaxe de commande de base pour supprimer une branche est :

git branch (-d | -D) [-r] ... 

La forme la plus simple de la commande supprime une branche locale, à condition que toutes ses modifications aient été fusionnées :

$ git branch -d dev 

Vous ne pouvez pas supprimer la branche actuellement active ; si vous essayez de le faire, vous recevrez un message semblable à celui-ci :

erreur :Impossible de supprimer la branche 'main' extraite à '/tmp/sandbox' 

Lorsque tout se passe bien, un message de confirmation s'affiche :

Dév de branche supprimé (était 1ae41e8). 

Si vous supprimez une branche qui n'existe que localement, avec des modifications non fusionnées, vous perdrez ces modifications. Par conséquent, git refusera de supprimer une branche dans une telle situation, par défaut :

erreur :la branche "dev" n'est pas entièrement fusionnée. 
Si vous êtes sûr de vouloir le supprimer, exécutez 'git branch -D dev'.

Comme l'indique le message d'erreur, vous pouvez forcer la suppression avec le -D drapeau. Cependant, git vous permettra de supprimer une branche locale non fusionnée si elle existe à distance :

avertissement :suppression de la branche 'dev' qui a été fusionnée avec 
'refs/remotes/origin/dev', mais pas encore fusionné avec HEAD.
Dév de branche supprimé (était 9a6d20b).

La suppression d'une branche distante est assez différente. Vous utiliserez le git push commande avec le -d drapeau à supprimer. Après cela, fournissez le nom de la télécommande (souvent origine ) et le nom de la branche :

$ git push -d origin dev 
Vers github.com :bobbykjack/sandbox.git
- [supprimé] développeur

Suppression de branches locales et distantes avec GitHub Desktop

Contrairement au programme git en ligne de commande, l'application de bureau de GitHub vous permet uniquement de supprimer la branche active. Vous pouvez effectuer cette action via la Branche menu, en sélectionnant le bouton Supprimer option et en la confirmant :

Comment supprimer une branche dans Git localement et à distance

GitHub Desktop ne vous laissera pas supprimer la branche par défaut, par exemple. main—même si git lui-même le supporte. Si la branche par défaut est celle qui est actuellement active, l'application désactive l'action du menu.

Si la branche représente également une branche distante, GitHub Desktop offre également la possibilité de la supprimer de la télécommande :

Comment supprimer une branche dans Git localement et à distance

Suppression de branches à l'aide de GitKraken

GitKraken affiche les branches locales et distantes de votre référentiel dans la barre latérale gauche. Vous devez les supprimer séparément.

Passez la souris sur le nom de la branche appropriée et cliquez sur Branche menu d'actions qui ressemble à trois points verticaux. Dans le menu, sélectionnez Supprimer :

Comment supprimer une branche dans Git localement et à distance

Vous verrez un message de confirmation vous informant qu'il s'agit d'une opération destructrice. Vous pouvez confirmer que vous souhaitez continuer avec la option Supprimer bouton :

Comment supprimer une branche dans Git localement et à distance

Reflétant le comportement par défaut du programme de ligne de commande git, vous devez d'abord passer à une branche autre que celle que vous supprimez. Sinon, un message d'erreur s'affichera :

Comment supprimer une branche dans Git localement et à distance

Suppression de succursales locales et distantes à l'aide de Tower

La suppression d'une branche avec Tower est très similaire à la suppression d'une branche avec GitKraken. Les branches locales et distantes sont affichées dans un panneau sur le côté gauche. Faites un clic droit sur n'importe quelle branche et sélectionnez l'option Supprimer dans le menu contextuel :

Comment supprimer une branche dans Git localement et à distance

Une différence clé est qu'une branche distante peut être supprimée avec sa branche locale, lors de la confirmation :

Comment supprimer une branche dans Git localement et à distance

Supprimer une branche sur GitHub

GitHub agit uniquement en tant que source distante, donc les branches y sont distantes par défaut. Si vous supprimez une branche à l'aide du site Web GitHub, vous devrez supprimer la branche locale correspondante en utilisant l'une des autres méthodes ici.

Comme avec l'application GitHub Desktop, le site Web GitHub ne vous permettra pas de supprimer la branche par défaut. L'option n'apparaît tout simplement pas. Cependant, la suppression d'une branche est simple. À partir du Code du référentiel page, cliquez sur les succursales lien, localisez la branche à supprimer, puis cliquez sur Supprimer cette branche icône, qui ressemble à une poubelle :

Comment supprimer une branche dans Git localement et à distance

Sachez qu'il n'y a pas de vérification des modifications non fusionnées, donc sur GitHub, la branche sera simplement supprimée immédiatement. Cependant, comme il représentera toujours une branche distante, cela devrait être le comportement auquel vous vous attendez.

Notez qu'après la suppression, vous verrez un bouton pour Restaurer la branche. Cependant, il s'agit simplement d'une fonction d'annulation utile, au cas où vous cliqueriez accidentellement sur l'icône de suppression. Ne vous y fiez pas, car dès que vous actualisez ou quittez la page, vous perdez l'option !

Comment supprimer une branche dans Git localement et à distance

Suppression de branches locales et distantes sur Bitbucket

Bitbucket, comme GitHub, ne vous permettra pas de supprimer la branche par défaut. Bitbucket appelle cela la branche principale dans Paramètres du référentiel . Vous pouvez supprimer toute autre succursale répertoriée dans les Branches onglet, via ses Actions correspondantes menus :

Comment supprimer une branche dans Git localement et à distance

Vous pouvez également supprimer plusieurs branches à la fois si vous effectuez une opération de nettoyage importante :

Comment supprimer une branche dans Git localement et à distance

La suppression de branches fait partie d'un workflow Git typique

Les branches Git peuvent compliquer votre flux de travail, en particulier celui avec des branches locales, distantes et de suivi. Mais pour un développement quotidien simple, vous êtes susceptible de créer et de supprimer des branches locales tout le temps. Il s'agit d'un aspect essentiel d'un flux de travail git typique auquel vous devriez vous habituer.


[]