Dans cette leçon, nous allons effectuer les opérations suivantes :
- Créer un référentiel distant
- Créer une copie locale du référentiel distant
- Créer deux branches dans la copie locale
- Poussez une branche vers le référentiel distant
- Supprimer les succursales locales
- Supprimer les branches distantes
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_localClonage 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 -rorigine/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 brancheb1
b2
* Maître
Nous allons maintenant apporter quelques modifications aux branches :
$ git caisse b1Basculé 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 brancheb1
* 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 b1Compter 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 brancheb1
* 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 -dVérifions d'abord la branche master, afin de pouvoir supprimer les branches b1 et b2.
$ git checkout maîtreBasculé 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 b1erreur : 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 b1Mise à 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 brancheb1
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 -rorigine/b1
origine/maître
Vous pouvez utiliser la commande suivante pour supprimer une branche distante :
git pousserVous 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 -rorigine/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