Git

Comment supprimer une branche Git

Comment supprimer une branche Git
Créer des branches dans Git est facile. Il est considéré comme l'une des meilleures fonctionnalités de Git. Cependant, en raison de la présence de référentiels distants et locaux, la suppression de branches peut devenir un peu déroutante.

Dans cette leçon, nous allons effectuer les opérations suivantes :

La leçon doit vous donner une compréhension globale du processus de création et de suppression de branche, afin que vous maîtrisiez bien 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 initialisez pour être le référentiel distant :

$ projet mkdir.git
$ cd projet.git
$ git init -bare

Dépôt Git vide initialisé dans /Users/zak/_work/LearnGIT/git_delete_branch/project.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 GitHub ou 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 du fichier utilisé ici.

$ git clone /Users/zak/_work/LearnGIT/git_delete_branch/project.git project_local
Clonage dans 'project_local'…
avertissement : vous semblez avoir cloné un dépôt vide.
Fini.

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

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

$ cd projet_local
 
$ touchez Lisez-moi.SMS
 
$ git ajouter -A
 
$ git commit -m "Initialisation du module"
 
[master (root-commit) 81eb2a3] Initialisation du module
1 fichier modifié, 0 insertions(+), 0 suppressions(-)
mode de création 100644 Lisez-moi.SMS
 
$ git push origin master
 
Compter les objets : 3, terminé.
Objets d'écriture : 100 % (3/3), 221 octets | 0 octet/s, terminé.
Total 3 (delta 0), réutilisé 0 (delta 0)
Vers /Users/zak/_work/LearnGIT/git_delete_branch/project.git
* [nouvelle branche]      maître -> maître

Dans les commandes ci-dessus, nous avons créé un fichier appelé ReadMe.txt, l'a ajouté à la copie locale, l'a validé dans la copie locale, puis a poussé les modifications vers le référentiel distant ou la branche principale d'origine.

Si vous vérifiez les branches, vous verrez la branche principale dans la copie locale :

$ git branche
* Maître

Si vous cochez les branches distantes, vous y verrez également la branche principale :

$ git branche -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 branche -a
* Maître
télécommandes/origine/maître

Créons deux branches appelées b1 et b2 à partir de la branche master :

$ git branche b1
$ git branche b2

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

$ git branche
 
b1
b2
* Maître

Nous allons maintenant apporter quelques modifications aux branches :

$ git caisse b1
 
Basculé vers la branche 'b1'
 
$ toucher branche1.SMS
 
$ git ajouter -A
 
$ git commit -m "Modification de la branche1"
 
[b1 a2f488e] Modification de la branche1
1 fichier modifié, 0 insertions(+), 0 suppressions(-)
créer le mode 100644 branche1.SMS
 
$ git caisse b2
 
Basculé vers la branche 'b2'
 
$ touche branche2.SMS
 
$ git ajouter -A
 
$ git commit -m "Modification de la branche2"
 
[b2 2abb723] Modification de la branche2
1 fichier modifié, 0 insertions(+), 0 suppressions(-)
créer le mode 100644 branche2.SMS

Vérifions les statuts des branches locales et distantes :

$ git branche
 
b1
* b2
Maître
 
$ git branche -r
 
origine/maître

On voit localement qu'on a trois branches master, b1 et b2. Mais nous n'avons que la branche master dans le référentiel distant.

4. Pousser des branches vers un référentiel distant

Poussons la branche b1 vers le dépôt distant :

$ git push origine b1
 
Compter les objets : 2, terminé.
Compression delta utilisant jusqu'à 4 threads.
Compression d'objets : 100 % (2/2), terminé.
Objets d'écriture : 100 % (2/2), 249 octets | 0 octet/s, terminé.
Total 2 (delta 0), réutilisé 0 (delta 0)
Vers /Users/zakh/_work/LearnGIT/git_delete_branch/project.git
* [nouvelle succursale]      b1 -> b1

Vous pouvez vérifier les statuts des succursales locales et distantes :

$ git branche
 
b1
* b2
Maître
 
$ git branche -r
 
origine/b1
origine/maître

D'après les statuts des succursales ci-dessus, nous pouvons voir que la succursale b1 est également disponible à distance.

5. Supprimer des branches localement

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

branche git -d

Vérifions d'abord la branche master, afin de pouvoir supprimer les branches b1 et b2.

$ git checkout maître
 
Basculé vers la branche 'master'
Votre branche est à jour avec 'origin/master'.

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

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

L'erreur vous dit que vous devez fusionner les modifications de la branche b1. Il s'agit d'une garantie pour ne pas perdre par erreur votre travail sur les branches. 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 transférons-les vers le référentiel distant.

$ git fusionner b1
 
Mise à jour de 81eb2a3… a2f488e
Avance rapide
branche1.txt | 0
1 fichier modifié, 0 insertions(+), 0 suppressions(-)
créer le mode 100644 branche1.SMS
 
$ git fusionner b2
 
Fusion faite par 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 master
 
Compter les objets : 4, terminé.
Compression delta utilisant jusqu'à 4 threads.
Compression d'objets : 100 % (4/4), terminé.
Objets d'écriture : 100 % (4/4), 454 octets | 0 octet/s, terminé.
Total 4 (delta 1), réutilisé 0 (delta 0)
Vers /Users/zak/_work/LearnGIT/git_delete_branch/project.git
81eb2a3… 34db496 maître -> maître

Essayez maintenant de supprimer à nouveau les branches :

$ git branche
 
b1
b2
* Maître
 
$ git branche -d b1
 
Branche supprimée b1 (était a2f488e).
 
$ git branche -d b2
 
Branche b2 supprimée (était 2abb723).
 
$ git branche
 
* Maître

Vous avez supprimé avec succès les branches b1 et b2 localement.

6. Suppression de succursales distantes

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

$ git branche -r
 
origine/b1
origine/maître

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

git pousser --effacer

Vous pouvez donc supprimer la branche b1 distante avec les éléments suivants :

$ git push origin --delete b1
 
À /Users/zakh_eecs/_work/LearnGIT/git_delete_branch/project.git
- [supprimé]         b1

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

$ git branche -r
 
origine/maître

Toutes nos félicitations! Vous avez supprimé avec succès toutes les branches que vous avez créées. Entraînez-vous à créer plus de branches et à les supprimer pour maîtriser le processus de suppression de branche 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-Branching-Branches-in-a-Nutshell
  • https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging
Moteurs de jeux gratuits et open source pour le développement de jeux Linux
Cet article couvrira une liste de moteurs de jeux gratuits et open source qui peuvent être utilisés pour développer des jeux 2D et 3D sur Linux. Il ex...
Tutoriel Shadow of the Tomb Raider pour Linux
Shadow of the Tomb Raider est le douzième ajout à la série Tomb Raider - une franchise de jeux d'action-aventure créée par Eidos Montréal. Le jeu a ét...
Comment booster les FPS sous Linux?
FPS signifie Images par seconde. La tâche du FPS est de mesurer la fréquence d'images dans les lectures vidéo ou les performances de jeu. En termes si...