|
Un conflit se produit si depuis le dernier commit, 2 développeurs modifient le même fichier à la même ligne ou si un développeur modifie un fichier qu'un autre développeur supprime.
|
|
Un conflit se produit si depuis le dernier commit, 2 développeurs modifient le même fichier à la même ligne ou si un développeur modifie un fichier qu'un autre développeur supprime.
|
|
Dans ce cas, le processus de 'merge' renvoit l'erreur suivante :
|
|
Dans ce cas, le processus de 'merge' renvoie l'erreur suivante :
|
|
|
|
|
|
```bash
|
|
```bash
|
|
Auto-merging fichier-conflit.txt
|
|
Auto-merging fichier-conflit.txt
|
... | @@ -27,11 +27,11 @@ on essaye le conflit |
... | @@ -27,11 +27,11 @@ on essaye le conflit |
|
- Entre `<<<<<<< HEAD` et `=======` se situe la ligne du fichier qui pose problème dans la branche 'master' où se situe le pointeur HEAD (donc où on est)
|
|
- Entre `<<<<<<< HEAD` et `=======` se situe la ligne du fichier qui pose problème dans la branche 'master' où se situe le pointeur HEAD (donc où on est)
|
|
- Entre `=======` et `>>>>>>> develop` se situe la ligne du fichier qui pose problème dans la branche 'develop'
|
|
- Entre `=======` et `>>>>>>> develop` se situe la ligne du fichier qui pose problème dans la branche 'develop'
|
|
|
|
|
|
Il n'y a plus qu'à effacer ces commentaires et choisir la ligne qu'on veur garder. Voici le nouveau contenu du fichier `fichier-conflit.txt` (on a gardé le contenu présent dans la branche master):
|
|
Il n'y a plus qu'à effacer ces commentaires et choisir la ligne qu'on veut garder. Voici le nouveau contenu du fichier `fichier-conflit.txt` (on a gardé le contenu présent dans la branche master):
|
|
```bash
|
|
```bash
|
|
ligne 1 pour un conflit
|
|
ligne 1 pour un conflit
|
|
```
|
|
```
|
|
|
|
|
|
Le fichier doit être sauvegardé avec un éditeur de texte, puis ajouté dans la zone d'indexation (`git add fichier-confli.txt`) et validé (`git commit -m 'Resolution conflit'`).
|
|
Le fichier doit être sauvegardé avec un éditeur de texte, puis ajouté dans la zone d'indexation (`git add fichier-conflit.txt`) et validé (`git commit -m 'Resolution conflit'`).
|
|
La fusion se termine automatiquement : si on refait `git merge develop`, il apparaît 'everything up-to-date'.
|
|
La fusion se termine automatiquement : si on refait `git merge develop`, il apparaît 'everything up-to-date'.
|
|
Si on visualise l'historique avec la commande `git log --graph --decorate --oneline --all --color` ou en allant dans l'onglet `Repository -> Visualize all Branch history`, on apperçoit qu'un nouveau commit est créé, il s'agit d'un 'commit de merge' qui correspond à la fusion des 2 branches. |
|
Si on visualise l'historique avec la commande `git log --graph --decorate --oneline --all --color` ou en allant dans l'onglet `Repository -> Visualize all Branch history`, on aperçoit qu'un nouveau commit est créé, il s'agit d'un 'commit de merge' qui correspond à la fusion des 2 branches. |