Skip to article frontmatterSkip to article content

Les branches Git

IUT d'Orsay, Université Paris-Saclay

Introduction aux branches

Comment nommer une branche ?

Nous allons adopter les conventions suivantes pour nommer les branches :

  1. Le nom d’une branche est toujours de la forme : <prefix>/<name>.
  2. Les <prefix> possibles sont :
    • feature/ : pour les nouvelles fonctionnalités.
    • test/ : pour les tests.
    • bugfix/ : pour les correctifs de bugs.
    • experiment/ : pour des essais.
    • improvement/ : pour des améliorations (qualité du code).
  3. <name> est toujours en kebab-case.

Opérations sur les branches

Créer une branche

Vous pouvez créer une nouvelle branche avec git branch <prefix>/<name> puis aller sur cette branche avec git checkout <prefix>/<name>. Par exemple :

git branch feature/assign-students-to-houses
git checkout feature/assign-students-to-houses

Ou directement :

git checkout -b feature/assign-students-to-houses

pour créer et aller sur la branche en une seule commande.

Lister les branches

Pour lister toutes les branches locales (et distantes avec l’option -a):

git branch -a

Vous pouvez voir les branches qui sont en cours de travail et celles qui sont déjà fusionnées avec la branche main avec les options --no-merged et --merged respectivement.

git branch -a --no-merged main
git branch -a --merged main

Supprimer une branche

Pour supprimer une branche qui est déjà fusionnée :

git branch -d <prefix>/<name>

Travailler en équipe avec des branches

Éviter les conflits

Merge request

Merge request
Demande de fusion d’une branche de travail vers la branche principale.

Le responsable de la branche de travail devrait faire le merge request.

Pour soumettre un merge request en utilisant l’interface GitLab.

  1. Allez dans Code > Merge requests.
  2. Cliquez sur New merge request.
  3. Choisissez la branche de travail comme source branch et main comme target branch.
  4. Cliquez sur Compare branches and continue.
  5. Écrivez un titre et une description de la demande.
  6. Choisissez Assignees : seul le responsable de la branche suffit.
  7. Choisissez Reviewers : seul le responsable de la branche main suffit.
  8. Dans Merge options, cochez Delete source branch when merge request is accepted.
  9. Cliquez sur Create merge request.

Changer de branches en cours de travail

Si vous êtes en cours de travail et que vous avez besoin de changer de branches pour travailler sur d’autres fonctionnalités, la façon la plus sécurisée pour ne pas accidentellement perdre vos modifications est de faire un commit de votre travail courant avant de changer de branche.

Une autre possibilité est de garder ces modifications dans une pile de travail.

  1. Par exemple, vous êtes en train de travailler sur feature/assign-students-to-houses et un autre membre du groupe vous demande de l’aide sur bugfix/crash-on-startup.
  2. Vous n’êtes pas prêt pour faire un commit de feature/assign-students-to-houses parce que vous voulez garder un historique propre.
  3. Vous pouvez utiliser la commande git stash push -u -m "<message>" pour mettre toutes les nouvelles modifications (-u inclus les nouveaux fichiers crées) depuis le dernier commit dans un élément d’une pile de travail gardé par Git avec un <message> explicatif.
  4. Vous pouvez ensuite faire git checkout bugfix/crash-on-startup et travailler sur la branche bugfix/crash-on-startup.
  5. Une fois que êtes revenu à feature/assign-students-to-houses, vous pouvez utiliser la commande git stash pop pour remettre vos modifications et enlever l’élément correspondant de la pile.