Bases de la branche Git

Bases de la branche Git

Bases de la ramification GIT

La capacité de se ramifier facilement est l'une des meilleures caractéristiques 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. La ramification GIT est efficace. Les utilisateurs sont donc plus enclins à utiliser des branches dans GIT.

Un flux de travail de ramification

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

$ mkdir myvideogame
$ cd myvideogame
$ git init

Vous avez créé un référentiel GIT vide. Ajoutons notre conception.Fichier txt avec un peu de texte.

$ echo "Design Decision 1: Ajouter des images" >> conception.SMS
$ echo "Design Decision 2: Write Code" >> Conception.SMS
$ git add -a
$ git commit -m "c0: ajout de fichiers de conception"

Permet d'ajouter quelques modifications supplémentaires:

$ echo "Design Decision 3: Test Game" >> Design.SMS
$ git add -a
$ git commit -m "C1: fichier de conception modifié"

Si vous vérifiez l'histoire, vous trouverez:

$ Git Log --Oneline
6A09BD6 C1: fichier de conception modifié
5F18D89 C0: Fichier de conception ajouté

Si vous vérifiez le statut GIT et toutes les branches créées (en utilisant la commande: Git Branch -A), vous voyez:

$ statut git
Sur Branch Master
Rien à commettre, répertoire en activité propre
$ Git Branch -a
* maître

Actuellement, vous avez la situation suivante:

Vous avez fait deux commits dans la branche maîtresse.

Supposons que vous ayez trouvé des bugs dans vos tests de jeu, mais vous ne voulez pas résoudre le problème dans la branche maître parce que vous ne voulez pas encore jouer avec le design original. Afin que vous puissiez créer une nouvelle branche appelée BugFix:

$ Git Branch Bugfix

Maintenant, si vous vérifiez toutes les branches:

$ Git Branch -a
correction d'un bug
* maître

Maintenant, vous avez créé une nouvelle branche appelée Bugfix. La situation peut être visualisée comme ceci:

Cependant, l'étoile (*) à côté de la branche maître signifie que vous êtes toujours dans le maître. Si vous apportez des modifications, il ira toujours dans la branche principale. Vous pouvez utiliser la commande de caisse pour modifier les branches:

$ git Checkout Bugfix
Chassé à la branche 'bugfix'

Vous pouvez vérifier la branche que vous utilisez avec la commande status ou «Branch -A»:

$ statut git
Sur Branch BugFix
Rien à commettre, répertoire en activité propre
$ Git Branch -a
* correction d'un bug
maître

Maintenant, corrigeons le bogue:

$ echo "correction de bug 1" >> conception.SMS
$ git add -a
$ git commit -m "C2: bug corrigé 1"

Vous avez créé une situation comme ceci:

La branche maître n'a pas le changement C2. Vous pouvez facilement le vérifier en vérifiant l'histoire des deux branches.

Tout d'abord, l'histoire de la branche BugFix:

$ statut git
Sur Branch BugFix
Rien à commettre, répertoire en activité propre
$ Git Log --Oneline
E8F615B C2: bug fixe 1
6A09BD6 C1: fichier de conception modifié
5F18D89 C0: Fichier de conception ajouté

Ensuite, vous pouvez passer à Master Branch et vérifier son historique:

$ maître de paiement
Changé de succursale «maître»
$ statut git
Sur Branch Master
Rien à commettre, répertoire en activité propre
$ Git Log --Oneline
6A09BD6 C1: fichier de conception modifié
5F18D89 C0: Fichier de conception ajouté

Vous pouvez voir que la branche maître 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 êtes situé. Supposons que vous souhaitez 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:

$ statut git
Sur Branch Master
Rien à commettre, répertoire en activité propre
$ git branche expérimental
$ git Checkout expérimental
Passé à la branche «expérimentale»
$ statut git
Sur Branch Experimental
Rien à commettre, répertoire en activité propre
$ echo "Ajouter des fonctionnalités d'expérience" >> conception.SMS
$ git add -a
$ git commit -m "c3: ajout de caractéristiques expérimentales"
[expérimental 637bc20] C3: Ajout de caractéristiques expérimentales
1 fichier modifié, 1 insertion (+)

Si vous vérifiez l'histoire de votre branche expérimentale, vous verrez:

$ statut git
Sur Branch Experimental
Rien à commettre, répertoire en activité propre
$ Git Log --Oneline
637BC20 C3: Ajout de caractéristiques expérimentales
6A09BD6 C1: fichier de conception modifié
5F18D89 C0: Fichier de conception ajouté

Vous remarquerez que vous n'avez pas le commit C2 qui a été créé dans Bugfix Branch. Parce que la branche expérimentale est créée à partir de Master Branch, il ne voit pas le bugfix change. Vous avez la situation suivante:

Conclusion

Toutes nos félicitations! Vous avez appris à se ramifier.

Les branches git sont faciles et rapides à faire. C'est l'une des raisons de la popularité de Git. Si vous souhaitez devenir un utilisateur GIT compétent, vous devez devenir compétent dans la branche GIT.

Une étude plus approfondie:

https: // git-scm.com / book / en / v2 / git-branching-basic-ranching-and-werging