Git

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

Principes de base de la fusion et de la suppression de branches Git
Le branchement peut vous aider à garder votre travail organisé. 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 au master et commitons à nouveau. Voici les commandes :

$ mkdir monjeu
$ cd monjeu
$ git init
$ echo "Décision de conception 1 : Brainstarm" >> conception.SMS
$ git ajouter -A
$ git commit -m "C0: Projet démarré"
$ echo "Décision de conception 2 : Écrire le code" >> conception.SMS
$ git ajouter -A
$ git commit -m "C1 : code soumis"
$ git branch fonctionnalités
$ git checkout fonctionnalités
$ echo "Ajouter une fonctionnalité 1" >> fonctionnalité.SMS
$ git ajouter -A
$ git commit -m "C2 : Fonctionnalité 1"
$ echo "Ajouter une fonctionnalité 2" >> fonctionnalité.SMS
$ git ajouter -A
$ git commit -m "C3 : Fonctionnalité 2"
$ git checkout maître
$ echo "Modifier à nouveau le maître" >> conception.SMS
$ git ajouter -A
$ git commit -m "C4: Master Modified"

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

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

$ git statut
Sur le maître de branche
rien à valider, répertoire de travail propre
$ git log --oneline
2031b83 C4 : Maître modifié
1c0b64c C1 : Code soumis
 
$ git checkout fonctionnalités
Passé à la branche « fonctionnalités »
 
$ git log --oneline
93d220b C3 : caractéristique 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 checkout maître
Basculé vers la branche 'master'
 
$ git statut
Sur le maître de branche
rien à valider, répertoire de travail propre

Créons maintenant la fusion :

$ git merge fonctionnalités

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

Fusionner les « fonctionnalités » de la branche
 
# 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 la stratégie 'récursive'.
fonctionnalité.txt | 2 ++
1 fichier modifié, 2 insertions (+)
fonction de création du mode 100644.SMS

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

Si vous consultez les journaux, vous trouverez :

$ git statut
Sur le maître de branche
rien à valider, répertoire de travail propre
 
$ git log --oneline
46539a3 C5 : Fusionner les « fonctionnalités » de la branche
2031b83 C4 : Maître modifié
93d220b C3 : caractéristique 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.

$ git branche -a
fonctionnalités
* Maître

Vous pouvez le supprimer avec la commande suivante :

$ git branch -d fonctionnalités

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

$ git branche -a
* Maître

Conclusion

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

Lectures complémentaires :

Comment développer un jeu sur Linux
Il y a dix ans, peu d'utilisateurs de Linux prédisaient que leur système d'exploitation préféré serait un jour une plate-forme de jeu populaire pour l...
Ports Open Source des moteurs de jeux commerciaux
Les récréations de moteur de jeu gratuites, open source et multiplateformes peuvent être utilisées pour jouer à d'anciens ainsi qu'à certains des titr...
Meilleurs jeux de ligne de commande pour Linux
La ligne de commande n'est pas seulement votre plus grand allié lorsque vous utilisez Linux, elle peut également être une source de divertissement car...