Session 3 : les branches
Lien direct vers la présentation.
Les branches
-
modifier dernière diapo de la session 2 en conséquence de celle-ci -
01 cas d'utilisation (gestion des bugs , et des demandes d'évolution) (jb) -
02 principes (jb) -
Remplacer "graphe" par "fonction" pour que ce soit plus compréhensible -
Modifier l’ordre des commit pour illustrer l’exemple d’un "hotfix" -
Passer les graphiques en direct sous mermaid
-
-
03 divergence (deux univers parallèles) (jb) (finalement supprimée) -
graphique pour illustrer un commit dans le main et dans une branche (finalement supprimée)
-
-
04 pointeurs et HEAD (à enlever ?) -
05 gestion des branches (décliner par outil) - Création
- À partir d'une étiquette
git checkout -b v2.9.X
- nommer les branches (nommage automatique par gitlab)
- À partir d'une étiquette
- Suppression
- Travailler avec plusieurs branches simultanément
-
05.01 Gitlab, à partir d'une issue (philippe) -
05.02 RStudio (marine) -
05.03 ligne de commande (olivier) -
05.04 VS Code (philippe)
- Création
-
06 branches distantes (décliner par outil) - synchroniser une branche locale avec une branche distante
- où sont mes branches ?
-
06.01 RStudio (marine) -
06.02 ligne de commande (olivier) -
06.03 VS Code (philippe)
-
07 fusion (merge) (olivier + relecteurs) -
les différentes méthodes de fusion -
apparition et gestion des conflits -
bonnes pratiques de fusion
-
-
08 rebasage (jb)
scénario basé sur un projet à construire (template_session3)
(Marie : plusieurs documents avec différents chapitres et contenant des erreurs)
Intervention du formateur en amont:
- Clonage d'un projet (fork de template_session3 par le formateur pour ne pas polluer le template)
- configs à faire pour empêcher les modifs par les stagiaires:
- bloquer qui peut modifier la branche main (settings/Merge request,Merge commit with semi-linear history )
- repository / protected branch et sur main, bloquer les push (no one )
Par les stagiaires, git clone sur le projet "forké", puis:
- créer une issue (chaque participant en créé une)
- Affectation des issues
- création des branches par issue et travail dans les branches (édition des fichiers)
- faire des commits avec les corrections
- Pousser les modifications vers le dépôt distant
- le formateur modifie le main
- fusion (merge request) par chaque user
- rebasage nécessaire pour tous
- fusion (merge request) par chaque user
Edited by Jean-Baptiste Louvet