Outils & qualité · 4 mondes · 12 étapes

Git & GitHub

Versionner, brancher, réparer et collaborer, commande par commande.

Progression

0 %

0/12 étapes terminées

Intermédiaire · 9 min de lecture

Branches et fusions

Travailler à côté, réunir ensuite

1Définition

Une branche est une étiquette mobile posée sur un commit. On en crée une par fonctionnalité (git switch -c), puis on la fusionne (git merge) : par avance rapide si la branche courante n'a pas bougé, par un commit de fusion sinon. Deux modifications de la même ligne provoquent un conflit, à résoudre à la main.

2Principes fondamentaux

01

Une branche par sujet

main reste toujours dans un état qui marche.

02

Fusionner dans la branche courante

On se place sur main pour y amener badges.

03

Un conflit est une question

Git demande quelle version garder ; tu réponds en écrivant la bonne.

04

Faire le ménage

git branch -d après la fusion.

3Exemples pratiques

Les marqueurs d'un conflit

Exemple
1<<<<<<< HEAD2# Sys-Code — apprends le code3=======4# Sys-Code — code en jouant5>>>>>>> titre

Ta version en haut, celle de l'autre branche en bas : on garde l'une, l'autre, ou un mélange, et on supprime les marqueurs.

Voir l'arbre des branches

Exemple
1git log --oneline --graph --all

Dans un vrai terminal, --graph dessine les branches et leurs fusions.

4Erreurs courantes

Tout faire sur main

À éviter

git commit … sur main pour une fonctionnalité à moitié finie

À faire

git switch -c ma-fonction

Pourquoi : main ne marche plus tant que le travail n'est pas fini.

Laisser les marqueurs

À éviter

git add README.md  # avec <<<<<<< dedans

À faire

Écrire la version finale, puis git add

Pourquoi : Les marqueurs finissent dans le code… et le cassent.

Changer de branche avec des modifications en cours

À éviter

git switch main  # fichiers modifiés

À faire

Commiter (ou restaurer) d'abord

Pourquoi : Git refuse si elles seraient écrasées.

5Subtilités à connaître

  • ◆git merge --abort annule une fusion en cours et revient à l'état d'avant.
  • ◆git rebase réécrit une branche pour la replacer au bout d'une autre : un historique linéaire, mais une réécriture — jamais sur une branche partagée.
  • ◆Des branches courtes, fusionnées vite, provoquent beaucoup moins de conflits.

6Vérifie ta compréhension

Question 1/3

Score 0

Créer une branche et s'y placer :

Envie d'essayer ? Ouvre le Labo et recopie les exemples pour les modifier.