GNU/Linux >> Tutoriels Linux >  >> Linux

Tutoriel Git avancé

Cet article fait suite à mon article existant Mise en route avec GIT sous Linux. Si vous êtes nouveau sur Git, je vous recommande de parcourir d'abord mon article précédent, puis de continuer avec celui-ci.

Dans cet article, nous aborderons la création d'une branche, d'un tag, le renommage de la branche et l'annulation des commits sur Git.

  1. Branche  :La création de branches permet de créer une nouvelle ligne de développement pour éviter tout désordre sur la branche principale.
  2. Tag  :Une balise dans Git est une référence à l'historique de Git.
  3. Renommer une branche  : Renommer une branche signifie changer le nom de la branche existante et avoir notre code existant sur une branche avec un nouveau nom.
  4. Annuler un commit  : l'annulation permet d'annuler les modifications dans le dépôt local et distant.

Pré-requis

  1. Compréhension de base de Git (Cliquez ici pour apprendre les bases de Git.)

Qu'allons-nous faire ?

  1. Créer une branche.
  2. Fusionner une branche avec la branche principale.
  3. Créer une balise.
  4. Renommer une branche.
  5. Annuler un commit.

Créer une branche

Accédez à votre dépôt local et vérifiez simplement votre branche et son état à l'aide des commandes suivantes avant de créer une nouvelle branche. Ici, test-repo est le nom de mon référentiel.

pwd
git status
git log
git branch

Créez une nouvelle branche dans votre référentiel existant et extrayez-la.

git branch
git branch my-feature-branch
git branch
git checkout my-feature-branch
git branch

Créons un nouveau fichier et poussons-le vers la branche que nous avons créée.

ll
touch new-file-in-my-feature-branch
git status
git add new-file-in-my-feature-branch
git commit -m "created a new file in my-feature-branch"
git push
git push --set-upstream origin my-feature-branch

Fusionner une branche avec la branche principale

Si nous voulons que nos modifications dans la nouvelle branche soient fusionnées dans la branche principale, nous pouvons utiliser les commandes suivantes pour fusionner ces modifications dans la branche souhaitée. Tout d'abord, nous devons passer à la caisse dans la branche principale, puis fusionner la branche que nous avons créée.

ll
git branch
git checkout main
ll
git merge my-feature-branch
ll

Créer une balise

La création d'un tag est aussi simple que la création d'une branche. Commençons par apporter quelques modifications au dépôt, puis créons une balise. Nous devons encore valider les modifications avant de les transférer vers le référentiel distant.

git tag
ll
touch new-file-for-tag
git status
git add new-file-for-tag
git tag -a mytag.v1 -m
git tag -a mytag.v1 -m "create a tag"
git tag
git log
git status
git commit -m "create a tag mytag.v1"
git push

Nous pouvons vérifier toutes les balises que nous avons et nous engageons sur ces balises. La façon dont nous poussons notre branche nous permet également de pousser les balises.

git tag
git show mytag.v1
git push origin mytag.v1

De la même manière que nous passons à la caisse d'une succursale, nous pouvons également passer à la caisse d'une étiquette particulière.

git branch
git tag
git checkout mytag.v1
git branch

Passons à la branche principale avant d'aller plus loin.

git branch
git checkout main
git branch

Renommer une branche

Parfois, vous pouvez ressentir le besoin de renommer votre branche. Vous pouvez le faire très facilement en utilisant les commandes suivantes.

git branch
git branch wrong-brach
git checkout wrong-brach
touch file-in-wrong-branch
git add file-in-wrong-branch
git commit -m "Created a branch wrong-brach with a new file"
git push
git push --set-upstream origin wrong-brach
git branch
git branch --move wrong-brach correct-branch
git branch
push --set-upstream origin correct-branch

Vous pouvez même supprimer la branche du référentiel distant.

git branch
git branch -a
git push origin --delete  wrong-brach
git branch -a

Annuler un commit

Si vous souhaitez annuler votre validation tout en conservant vos modifications localement, vous pouvez utiliser les commandes suivantes pour effectuer une réinitialisation logicielle.

git branch
git checkout main
git log
git reset --soft HEAD~1
git log

Vous pouvez voir qu'après avoir annulé le commit, vos modifications locales sont toujours disponibles.

git status
git pull
git log
git status

Si vous souhaitez annuler votre validation et ne souhaitez pas conserver vos modifications localement, vous pouvez utiliser les commandes suivantes et effectuer une réinitialisation matérielle

git log
git reset --hard HEAD~1
git status
git log

Dans ce cas, vous pouvez voir qu'après avoir annulé votre commit, vous n'avez pas vos modifications localement

git status
git pull
git log

Dans les deux scénarios ci-dessus, nous avons vu l'annulation des commits locaux. Parfois, vous devrez peut-être annuler vos commits depuis le référentiel distant. Pour ce faire, vous devez transmettre vos modifications à la branche avec "+" comme suffixe au nom de la branche après avoir annulé vos modifications localement.

git branch
git log
git reset --hard HEAD~1
git push +main
git push origin  +main

Vous pouvez voir que le référentiel distant ne contient pas le commit qui a été annulé.

Conclusion

Dans cet article, nous avons couvert des scénarios tels que la création d'une branche et d'une balise. Nous avons vu comment une branche peut être renommée si nous réalisons que nous devons changer le nom de la branche existante. Nous avons également constaté que les validations dans le dépôt local, ainsi que dans le dépôt distant, peuvent être annulées. Vous pouvez désormais utiliser les commandes de cet article et les essayer par vous-même.


Linux
  1. 6 options de formatage tcpdump avancées

  2. Comment créer des balises Git

  3. Auto-complétion Git ?

  4. Comment renommer Git Branch Local et Remote

  5. Vérifiez si le dépôt git local est devant/derrière la télécommande

Contrôle audio avancé sous Linux

Comment supprimer une branche Git à distance et localement

Comment créer, renommer et supprimer des branches Git

Tutoriel étape par étape sur les scripts shell

Comment contrôler la version avec Git sur la ligne de commande

Tutoriel Unix Sed :Exemples avancés de substitution Sed