Git

Bases de la branche Git

Bases de la branche Git

Notions de base du branchement Git

La possibilité de créer des branches facilement est l'une des meilleures fonctionnalités de Git. La création de branches dans d'autres systèmes de contrôle de version peut être coûteuse en termes d'espace et d'exigences de traitement. Le branchement Git est efficace. Les utilisateurs sont donc plus enclins à utiliser des branches dans Git.

Un workflow de branchement

Supposons que vous ayez commencé un nouveau projet appelé myvideogame. Il a une seule branche. Le nom par défaut de la branche initiale dans Git est appelé master. Il est automatiquement créé.  Créons le référentiel Git myvideogame.

$ mkdir monjeuvidéo
$ cd mon jeu vidéo
$ git init

Vous avez créé un dépôt Git vide. Ajoutons notre conception.txt contenant du texte.

$ echo "Décision de conception 1 : ajouter des images" >> conception.SMS
$ echo "Décision de conception 2 : Écrire le code" >> conception.SMS
$ git ajouter -A
$ git commit -m "C0 : fichier de conception ajouté"

Ajoutons quelques modifications supplémentaires :

$ echo "Design Decision 3: Test Game" >> design.SMS
$ git ajouter -A
$ git commit -m "C1 : Fichier de conception modifié"

Si vous consultez l'historique, vous trouverez :

$ git log --oneline
6a09bd6 C1 : Fichier de conception modifié
5f18d89 C0 : Ajout du fichier de conception

Si vous vérifiez l'état de Git et toutes les branches qui ont été créées (à l'aide de la commande : git branch -a), vous voyez :

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

Actuellement, vous êtes dans la situation suivante :

Vous avez effectué deux commits dans la branche master.

Supposons que vous ayez trouvé des bogues dans vos tests de jeu, mais que vous ne vouliez pas résoudre le problème dans la branche master parce que vous ne voulez pas encore jouer avec la conception d'origine. Vous pouvez donc créer une nouvelle branche appelée bugfix :

$ git branch correctif

Maintenant, si vous vérifiez toutes les branches :

$ git branche -a
correction d'un bug
* Maître

Maintenant, vous avez créé une nouvelle branche appelée bugfix. La situation peut être visualisée ainsi :

Cependant, l'étoile (*) à côté de la branche master signifie que vous êtes toujours dans le master. Si vous apportez des modifications, cela ira toujours dans la branche master. Vous pouvez utiliser la commande checkout pour changer de branche :

$ git checkout correction de bogue
Basculé vers la branche 'bugfix'

Vous pouvez vérifier quelle branche vous utilisez avec la commande status ou "branch -a" :

$ git statut
Correction d'un bug sur la branche
rien à valider, répertoire de travail propre
 
$ git branche -a
* correction d'un bug
Maître

Maintenant, corrigeons le bug :

$ echo "Correction de bogue 1" >> conception.SMS
$ git ajouter -A
$ git commit -m "C2: Bug Fixed 1"

Vous avez créé une situation comme celle-ci :

La branche master n'a pas le changement C2. Vous pouvez facilement le vérifier en consultant l'historique des deux branches.

Tout d'abord, l'historique de la branche bugfix :

$ git statut
Correction d'un bug sur la branche
rien à valider, répertoire de travail propre
 
$ git log --oneline
e8f615b C2 : Bug corrigé 1
6a09bd6 C1 : Fichier de conception modifié
5f18d89 C0 : Ajout du fichier de conception

Ensuite, vous pouvez passer à la branche master et vérifier son historique :

$ git checkout maître
Basculé vers la branche 'master'
 
$ git statut
Sur le maître de branche
rien à valider, répertoire de travail propre
 
$ git log --oneline
6a09bd6 C1 : Fichier de conception modifié
5f18d89 C0 : Ajout du fichier de conception

Vous pouvez voir que la branche master n'a pas les modifications de la branche bugfix.

Vous pouvez toujours créer une nouvelle branche à partir de la branche actuelle dans laquelle vous vous trouvez. Supposons que vous souhaitiez créer une autre branche qui contiendra des fonctionnalités expérimentales. Vous pouvez créer la branche à partir de master et y ajouter des fonctionnalités expérimentales :

$ git statut
Sur le maître de branche
rien à valider, répertoire de travail propre
 
$ git branch expérimental
$ git checkout expérimental
Passé à la branche « expérimental »
$ git statut
Sur branche expérimentale
rien à valider, répertoire de travail propre
 
$ echo "Ajout de fonctionnalités d'expérimentation" >> conception.SMS
 
$ git ajouter -A
 
$ git commit -m "C3 : Ajout de fonctionnalités expérimentales"
[expérimental 637bc20] C3 : Ajout de fonctionnalités expérimentales
1 fichier modifié, 1 insertion (+)

Si vous consultez l'historique de votre branche expérimentale, vous verrez :

$ git statut
Sur branche expérimentale
rien à valider, répertoire de travail propre
 
$ git log --oneline
637bc20 C3 : Ajout de fonctionnalités expérimentales
6a09bd6 C1 : Fichier de conception modifié
5f18d89 C0 : Ajout du fichier de conception

Vous remarquerez que vous n'avez pas le commit C2 qui a été créé dans la branche bugfix. Parce que la branche expérimentale est créée à partir de la branche principale, elle ne voit pas les changements de correction de bogues. Vous avez la situation suivante :

Conclusion

Toutes nos félicitations! Vous avez appris à brancher.

Les branches Git sont faciles et rapides à créer. C'est l'une des raisons de la popularité de Git. Si vous souhaitez devenir un utilisateur compétent de Git, vous devez maîtriser les branches Git.

Une étude plus approfondie:

https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging

Tutoriel Bataille pour Wesnoth
The Battle for Wesnoth est l'un des jeux de stratégie open source les plus populaires auxquels vous pouvez jouer en ce moment. Non seulement ce jeu es...
0 A.ré. Didacticiel
Sur les nombreux jeux de stratégie disponibles, 0 A.ré. parvient à se démarquer comme un titre complet et un jeu tactique très profond bien qu'il soit...
Tutoriel Unity3D
Introduction à Unity 3D Unity 3D est un puissant moteur de développement de jeux. C'est une plateforme multiplateforme qui vous permet de créer des je...