Git suit les instantanés de votre projet au fil du temps. Une branche est un pointeur mobile vers un commit. Fusion combine les historiques (souvent après examen). Une pull request (ou demande de fusion) est la couche sociale : discutez des différences, exécutez CI, puis intégrez. Cette leçon relie le modèle mental aux commandes quotidiennes.
Widgets dans cette leçon : git-graph montre une topologie réelle : utilisez-le pour voir pourquoi des conflits de fusion se produisent lors de la jointure. Pipeline est le chemin des octets de votre éditeur vers la télécommande partagée. Explorateur de code annote les commandes que vous saisirez quotidiennement. Tableau de comparaison explique les compromis entre fusion et rebase. Le code à onglets contient des recettes pour la synchronisation et la récupération.
Avant les commandes, regardez le graphique : main déplacé de c1 → c2, puis feature/login a ajouté c3 au-dessus de c2. La fusion a amené c3 dans main en tant que c4. Si deux personnes éditaient les mêmes lignes depuis c2, Git s'arrêterait lors de la fusion avec un marqueur de conflit : votre travail consisterait à produire le fichier combiné correct.
Vos fichiers se trouvent dans le répertoire de travail. `git add` place un instantané dans l'index (staging). `git commit` enregistre cet instantané dans le dépôt local. `git push` envoie les commits à une distant (par exemple origin) afin que les coéquipiers puissent les extraire.
Étapes du pipeline : Modifier est un chaos non engagé : vous seul le voyez. Staging est l'aperçu du prochain commit (`git diff --cached`). Commit gèle l'historique localement (hors ligne). Push publie ; jusque-là, les sauvegardes et CI ne voient pas votre travail. PR ajoute une révision + des vérifications automatisées avant que la validation de fusion n'atterrisse sur main.
Explorateur de code : chaque ligne est un moment d'enseignement : cliquez dans l'ordre. Préférez `git switch` pour les changements de branche sur un Git plus récent ; « checkout » apparaît toujours dans les anciens documents.
Les deux intègrent votre fonctionnalité avec main. Merge ajoute un commit de fusion (comme c4 dans le graphique). Rebase rejoue vos commits en tant que nouveaux commits au-dessus du main : l'historique semble linéaire mais réécrit les SHA. Ne rebasez jamais les branches publiques sur lesquelles vos coéquipiers ont basé leur travail.