Comment supprimer une branche git

Comment supprimer une branche git
La création de branches en git est facile. C'est considéré comme l'une des meilleures fonctionnalités de Git. Cependant, en raison de la présence de référentiels éloignés et locaux, la suppression des branches peut devenir un peu déroutante.

Dans cette leçon, nous ferons ce qui suit:

  • Créer un référentiel distant
  • Créer une copie locale du référentiel distant
  • Créez deux branches dans la copie locale
  • Poussez une branche vers le référentiel distant
  • Supprimer les succursales locales
  • Supprimer les succursales distantes

La leçon devrait vous donner une compréhension globale du processus de création et de suppression des succursales, vous avez donc une bonne commande sur les étapes nécessaires lorsque vous devez supprimer une branche locale ou distante.

Commençons.

1. Création d'un référentiel distant

Créons un dossier appelé projet.git et initialiser pour être le référentiel distant:

$ MKDIR Project.git
PROJET $ CD.git
$ git init -bare

Initialisation du référentiel git vide dans / utilisateurs / zak / _Work / Learngit / git_delete_branch / projet.git /

2. Création d'une copie locale du référentiel distant

Dans un nouvel emplacement, créons une copie locale appelée project_local du référentiel distant à l'aide de la commande clone.

Remarque: Si vous travaillez avec le github ou le bitbucket, vous suivrez le même processus pour cloner le référentiel. Dans ce cas, vous aurez un lien SSH au lieu du chemin complet de fichier utilisé ici.

$ git clone / utilisateurs / zak / _Work / Learngit / git_delete_branch / projet.git project_local
Clonage dans 'project_local'…
AVERTISSEMENT: vous semblez avoir cloné un référentiel vide.
fait.

3. Création de branches à l'intérieur de la copie locale

Ajoutons d'abord un fichier à la copie locale, puis le poussons vers le référentiel distant:

$ cd project_local
$ tactile readme.SMS
$ git add -a
$ git commit -m "Initialisation du module"
[Master (Root-Commit) 81EB2A3] Initialisation du module
1 fichier modifié, 0 insertions (+), 0 suppressions (-)
Créer le mode 100644 Readme.SMS
$ git push origin maître
Compter les objets: 3, fait.
Écriture d'objets: 100% (3/3), 221 octets | 0 octets / s, fait.
Total 3 (delta 0), réutilisé 0 (delta 0)
Vers / utilisateurs / zak / _Work / Learngit / git_delete_branch / projet.git
* [New Branch] Master -> Master

Dans les commandes ci-dessus, nous avons créé un fichier appelé ReadMe.TXT, l'a ajouté à la copie locale, l'a engagée à la copie locale, puis a poussé les modifications au référentiel distant ou à la branche maître d'Origin.

Si vous vérifiez les succursales, vous verrez la branche principale de la copie locale:

Branche Git $
* maître

Si vous vérifiez les branches distantes, vous verrez également la branche maître:

$ Git Branch -r
Origine / Maître

Astuce: vous pouvez utiliser l'option «-a» pour voir toutes les branches des référentiels locaux et distants ensemble.

$ Git Branch -a
* maître
télécommandes / origine / maître

Créons deux branches appelées B1 et B2 à partir de la branche maître:

$ Git Branch B1
$ Git Branch B2

Vérifions si les branches ont été créées:

Branche Git $
b1
b2
* maître

Maintenant, nous allons apporter des modifications aux branches:

$ git Checkout B1
Passé à la branche «B1»
$ touch Branch1.SMS
$ git add -a
$ git commit -m "Branch1 Modification"
[B1 A2F488E] Branch1 Modification
1 fichier modifié, 0 insertions (+), 0 suppressions (-)
Créer le mode 100644 branche1.SMS
$ Git Checkout B2
Chassé à la branche 'B2'
$ touch Branch2.SMS
$ git add -a
$ git commit -m "Branch2 Modification"
[B2 2ABB723] BRANCH2 Modification
1 fichier modifié, 0 insertions (+), 0 suppressions (-)
Créer le mode 100644 branche2.SMS

Vérifions les statuts de branche locales et distantes:

Branche Git $
b1
* B2
maître
$ Git Branch -r
Origine / Maître

Nous pouvons voir localement, nous avons trois branches Maître, B1 et B2. Mais nous n'avons que la branche maître dans le référentiel distant.

4. Pousser les branches vers le référentiel distant

Poussons la branche B1 vers le référentiel distant:

$ git push origine b1
Compter les objets: 2, fait.
Compression delta en utilisant jusqu'à 4 threads.
Compression des objets: 100% (2/2), fait.
Écriture d'objets: 100% (2/2), 249 octets | 0 octets / s, fait.
Total 2 (Delta 0), réutilisé 0 (Delta 0)
Vers / utilisateurs / zakh / _Work / Learngit / git_delete_branch / projet.git
* [Nouvelle branche] B1 -> B1

Vous pouvez vérifier les statuts de branche locaux et distants:

Branche Git $
b1
* B2
maître
$ Git Branch -r
Origine / B1
Origine / Maître

À partir des statuts de branche ci-dessus, nous pouvons voir que la branche B1 est également disponible à distance.

5. Suppression des branches localement

Vous pouvez supprimer les branches localement avec l'option -d ou -d.

Git Branch -d

Voyons d'abord dans la branche maître, afin que nous puissions supprimer les branches B1 et B2.

$ maître de paiement
Changé de succursale «maître»
Votre branche est à jour avec «Origin / Master».

Essayons d'abord l'option -D pour supprimer la branche B1:

$ Git Branch -d B1
Erreur: la branche «b1» n'est pas entièrement fusionnée.
Si vous êtes sûr de souhaiter le supprimer, exécutez 'Git Branch -d B1'.

L'erreur vous indique que vous devez fusionner les modifications de la branche B1. Ceci est une sauvegarde, donc vous ne perdez pas par erreur votre travail sur les succursales. Vous pouvez utiliser l'option -D pour forcer la suppression de la fusion. Mais dans ce cas, fusionnons les modifications de B1 et B2 dans Master et passons à le référentiel distant.

$ git fusiter b1
Mise à jour 81EB2A3… A2F488E
Avance rapide
branche 1.txt | 0
1 fichier modifié, 0 insertions (+), 0 suppressions (-)
Créer le mode 100644 branche1.SMS
$ git fusiter b2
Fusionner la stratégie «récursive».
branche2.txt | 0
1 fichier modifié, 0 insertions (+), 0 suppressions (-)
Créer le mode 100644 branche2.SMS
$ git push origin maître
Compter les objets: 4, fait.
Compression delta en utilisant jusqu'à 4 threads.
Compression des objets: 100% (4/4), fait.
Écriture d'objets: 100% (4/4), 454 octets | 0 octets / s, fait.
Total 4 (Delta 1), réutilisé 0 (Delta 0)
Vers / utilisateurs / zak / _Work / Learngit / git_delete_branch / projet.git
81EB2A3… 34db496 Master -> Master

Essayez maintenant de supprimer à nouveau les branches:

Branche Git $
b1
b2
* maître
$ Git Branch -d B1
Branche supprimée B1 (était A2F488E).
$ Git Branch -d B2
Branche supprimée B2 (était 2ABB723).
Branche Git $
* maître

Vous avez réussi à supprimer localement les branches B1 et B2.

6. Suppression des succursales distantes

Lorsque vous vérifiez les branches distantes, vous voyez toujours B1 présent:

$ Git Branch -r
Origine / B1
Origine / Maître

Vous pouvez utiliser la commande suivante pour supprimer une branche distante:

push git --supprimer

Vous pouvez donc supprimer la branche B1 distante avec les suivantes:

$ git push Origin - Delete B1
Vers / utilisateurs / zakh_eecs / _Work / Learngit / git_delete_branch / projet.git
- [supprimé] B1

Maintenant, si vous vérifiez vos branches distantes, vous ne devriez plus voir B1:

$ Git Branch -r
Origine / Maître

Toutes nos félicitations! Vous avez réussi à supprimer toutes les branches que vous avez créées. Entraînez-vous à faire plus de branches et à les supprimer pour maîtriser le processus de suppression de la succursale Git.

Une étude plus approfondie:

  • https: // git-scm.com / book / en / v1 / git-branching-what-a-branch-is
  • https: // git-scm.com / book / en / v2 / git-ranching-branches-in-a-nutshell
  • https: // git-scm.com / book / en / v2 / git-branching-basic-ranching-and-werging