Skip to content

Commit aa9eefe

Browse files
committed
Améliorer le contenu pédagogique de .github/steps/4-step.md
1 parent 544b246 commit aa9eefe

1 file changed

Lines changed: 80 additions & 18 deletions

File tree

‎.github/steps/4-step.md‎

Lines changed: 80 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,91 @@
1-
## Étape 4, résoudre les conflits et fusionner
1+
## Étape 4 : relire et merger la pull request
22

3-
{{ status_line }}
3+
Ta pull request relie maintenant ton travail à la branche principale.
44

5-
### 📖 Qu’est-ce qu’un conflit de fusion ?
6-
Un conflit arrive quand la même portion de code a été modifiée différemment sur `main` et sur ta branche. Git ne sait pas quelle version garder, il te demande de trancher.
5+
Avant de merger, prends quelques instants pour relire ce que tu vas intégrer.
76

8-
### ✅ Cas simple, pas de conflit
9-
- Le message GitHub « **This branch has no conflicts with the base branch** » signifie que tu peux **fusionner** directement.
10-
- Clique **Merge pull request** puis **Confirm merge**.
7+
### 📖 Qu'est-ce qu'un merge ?
118

12-
### ⚠️ S’il y a des conflits
13-
Choisis **une** des deux méthodes :
9+
Un **merge** intègre dans une branche les changements provenant d'une autre branche.
1410

15-
**A. Bouton GitHub, UI**
16-
1. Clique **Update branch** dans la PR, si proposé.
17-
2. Si des conflits persistent, clique **Resolve conflicts**, édite, **Mark as resolved**, puis **Commit merge**.
11+
Ici, le but est d'intégrer le contenu de `my-first-branch` dans `main`.
12+
13+
Après le merge, ton changement fera donc partie de la version principale du dépôt.
14+
15+
### 🔍 Avant de merger
16+
17+
Dans ta pull request :
18+
19+
1. ouvre **Files changed** ;
20+
2. vérifie que seules les modifications attendues apparaissent ;
21+
3. reviens dans **Conversation** ;
22+
4. vérifie que les checks éventuels sont terminés.
23+
24+
Cette relecture finale évite d'intégrer accidentellement des fichiers ou des changements qui n'étaient pas prévus.
25+
26+
### ⌨️ Exercice : merger la pull request
27+
28+
Si GitHub indique que la branche peut être mergée :
29+
30+
1. clique sur **Merge pull request** ;
31+
2. clique sur **Confirm merge** ;
32+
3. une fois le merge effectué, GitHub peut te proposer **Delete branch**.
33+
34+
Tu peux supprimer `my-first-branch` après le merge. Son travail est désormais intégré dans `main` et son historique reste accessible.
35+
36+
### ⚠️ Et s'il y a un conflit ?
37+
38+
Un **conflit de merge** apparaît lorsque Git ne peut pas déterminer automatiquement quelle version d'une même partie d'un fichier doit être conservée.
39+
40+
Dans cet exercice simple, tu ne devrais normalement pas rencontrer de conflit. Mais dans un projet réel, cela arrive souvent lorsque plusieurs personnes modifient la même zone d'un fichier.
41+
42+
GitHub peut parfois proposer **Resolve conflicts** directement dans l'interface.
43+
44+
En ligne de commande, une résolution typique ressemble à :
1845

19-
**B. Ligne de commande, rebase recommandé**
2046
```bash
21-
git fetch origin
2247
git checkout my-first-branch
23-
git rebase origin/main
48+
git fetch origin
49+
git merge origin/main
50+
51+
# corriger les fichiers en conflit
2452

25-
# Résous les conflits, supprime les marqueurs <<<<<<< ======= >>>>>>>
2653
git add .
27-
git rebase --continue
54+
git commit
55+
git push
56+
```
57+
58+
Les marqueurs de conflit ressemblent à ceci :
59+
60+
```text
61+
<<<<<<< HEAD
62+
ta version
63+
=======
64+
l'autre version
65+
>>>>>>> main
66+
```
67+
68+
Il faut choisir ou recomposer la bonne version, puis supprimer ces marqueurs avant de créer le commit de résolution.
69+
70+
### 🧠 Merge, squash, rebase
71+
72+
GitHub peut proposer plusieurs stratégies selon la configuration du dépôt :
73+
74+
- **Merge commit** : conserve les commits de la branche et ajoute un commit de merge ;
75+
- **Squash and merge** : regroupe les commits de la PR en un seul commit ;
76+
- **Rebase and merge** : rejoue les commits sur la branche cible pour obtenir un historique linéaire.
77+
78+
Il n'existe pas une méthode universellement meilleure. Les équipes choisissent généralement une convention cohérente pour leurs projets.
79+
80+
<details>
81+
<summary>Un problème ?</summary>
82+
83+
Si le bouton de merge est désactivé :
84+
85+
- attends la fin des checks ;
86+
- vérifie qu'aucun conflit n'est signalé ;
87+
- vérifie que les étapes précédentes ont bien été validées.
88+
89+
</details>
2890

29-
git push --force-with-lease
91+
Merge maintenant ta pull request. Le cours détectera l'événement et affichera automatiquement le bilan final.

0 commit comments

Comments
 (0)