Principes de base de la fusion et de la suppression de branches Git

Basics Git Merging



La création de branches peut vous aider à organiser votre travail. Cependant, vous devez pouvoir fusionner votre travail afin de rendre le travail cohérent. Si vous ne fusionnez et ne supprimez jamais les branches, votre historique peut devenir trop chaotique pour être compris.

Utilisation de la fusion et de la suppression de branches

Créons d'abord une branche master, insérons quelques commits, créons une nouvelle branche appelée features, ajoutons quelques commits, puis revenons à master et commitons à nouveau. Voici les commandes :







$mkdirmon jeu
$CDmon jeu
$git init
$chassèrent 'Décision de conception 1 : Brainstarm' >>conception.txt
$git ajouter
$git commit -m « C0 : projet démarré »
$chassèrent « Décision de conception 2 : Ecrire du code » >>conception.txt
$git ajouter
$git commit -m « C1 : Code soumis »
$branche gitcaractéristiques
$git caissecaractéristiques
$chassèrent « Ajouter la fonctionnalité 1 » >>feature.txt
$git ajouter
$git commit -m « C2 : caractéristique 1 »
$chassèrent « Ajouter la fonctionnalité 2 » >>feature.txt
$git ajouter
$git commit -m « C3 : caractéristique 2 »
$git caisseMaître
$chassèrent 'Modifier à nouveau le maître' >>conception.txt
$git ajouter
$git commit -m « C4 : Maître modifié »

Les commandes ci-dessus ont créé la situation suivante :





Vous pouvez consulter l'historique des deux branches pour voir quels commits elles ont :





$statut git
Sur le maître de branche
rien à valider, répertoire de travail propre
$git log --une ligne
2031b83 C4 : Maître modifié
1c0b64c C1 : Code soumis

$git caissecaractéristiques
Basculé en succursale'caractéristiques'

$git log --une ligne
93d220b C3 : Fonctionnalité2
ad6ddb9 C2 : Fonctionnalité1
1c0b64c C1 : Code soumis
ec0fb48 C0 : Projet démarré

Supposons maintenant que vous souhaitiez apporter toutes les modifications de la branche de fonctionnalités à notre branche principale. Vous devrez démarrer le processus à partir de la destination de la fusion. Parce que nous voulons fusionner dans la branche master, vous devez lancer le processus à partir de là. Voyons donc la branche master :

$git caisseMaître
Basculé en succursale'Maître'

$statut git
Sur le maître de branche
rien à valider, répertoire de travail propre

Créons maintenant la fusion :



$git fusionnercaractéristiques

S'il n'y a pas de conflits dans la fusion, un éditeur de texte s'ouvrira avec les commentaires :

Fusionner la branche'caractéristiques'

# Veuillez saisir un message de validation pour expliquer pourquoi cette fusion est nécessaire,
# surtout s'il fusionne un amont mis à jour dans une branche thématique.
#
# Les lignes commençant par '#' seront ignorées et un message vide sera annulé
# le commit.

Vous pouvez modifier les commentaires ou accepter ceux par défaut. La sortie de fusion devrait afficher des résultats comme ceci :

Fusion faite par le'récursif'stratégie.
feature.txt| 2++
1 déposermodifié,2insertions(+)
mode de création100644feature.txt

Après la fusion, vous avez la condition suivante :

Si vous consultez les journaux, vous trouverez :

$statut git
Sur le maître de branche
rien à valider, répertoire de travail propre

$git log --une ligne
46539a3 C5 : Fusionner la branche'caractéristiques'
2031b83 C4 : Maître modifié
93d220b C3 : Fonctionnalité2
ad6ddb9 C2 : Fonctionnalité1
1c0b64c C1 : Code soumis
ec0fb48 C0 : Projet démarré

Vous avez fusionné les modifications avec succès. Cependant, la branche de fonctionnalité est toujours présente.

$branche git
caractéristiques
*Maître

Vous pouvez le supprimer avec la commande suivante :

$branche git -récaractéristiques

Si vous vérifiez maintenant, vous ne devriez voir que la branche master :

$branche git
*Maître

Conclusion

Assurez-vous de vérifier régulièrement les branches inutilisées et de les supprimer. Vous voulez garder votre référentiel propre pour le rendre facile à naviguer et à comprendre.

Lectures complémentaires :