... | ... | @@ -913,8 +913,25 @@ Merge made by the 'recursive' strategy. |
|
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
|
|
```
|
|
|
|
|
|
⏪ L'exécution de la commande `git pull` s'effectue en 2 sous-commandes qui peuvent s'exécuter indépendamment :
|
|
|
|
|
|
1. `git fetch`
|
|
|
* le client git local envoie au serveur des informations sur l'état de sa branche `origin/main`
|
|
|
* le serveur renvoie au client ce qui lui manque pour mettre à jour cette branche
|
|
|
2. `git merge`
|
|
|
* le client git local essaie d'intégrer le contenu d'`origin/main` dans `main` et pour cela il determine la partie commune de l'historique
|
|
|
* **cas 1** : si la différence est une série de commits qui s'enchainent directement derrière le dernier commit de `main`, la fusion est automatique et consiste à raccrocher les commits manquants dans `main`
|
|
|
* _👀c'est le cas du retard simple vu précédemment_
|
|
|
* **cas 2** : si la différence est une série de commits qui s'enchainent à partir d'un point de l'historique situé **avant** le dernier commit de `main`, **mais** que les commits sur les 2 branches **ne rentrent pas en conflit**, la fusion est automatique, elle consiste à faire temporairement coexister 2 branches parallèles (A et B) qui se rejoignent sur un commit généré automatiquement (appelé commit de fusion) qui a comme prédécesseurs les derniers commits de A et B (qui résout la divergence)
|
|
|
* _👀c'est le cas de l'avance/retard sans conflit_
|
|
|
* **cas 3** : si la différence est qu'une série de commits qui s'enchainent à partir d'un point de l'historique situé **avant** le dernier commit de `main`, **mais** que les commits sur les 2 branches **rentrent en conflit**, la fusion n'est plus automatique et elle requiert une intervention du développeur (résolution de conflit)
|
|
|
* 👀 **_ce dernier cas n'est pas traité par ce guide_**
|
|
|
|
|
|
On vérifie l'état du dépôt et on en déduit que :
|
|
|
|
|
|
* il s'est opéré une fusion automatique
|
|
|
* le dépôt local n'est pas synchronisé avec le dépôt distant
|
|
|
|
|
|
```bash
|
|
|
sebastienjean@MacBook-Air-749 gitlab-bases % git status
|
|
|
On branch main
|
... | ... | @@ -937,4 +954,6 @@ sebastienjean@MacBook-Air-749 gitlab-bases % git log --pretty="format:%h %s %an |
|
|
sebastienjean@MacBook-Air-749 gitlab-bases %
|
|
|
```
|
|
|
|
|
|
> :eyes: l'option `--graph` de la commande `git log` permet de représenter l'**historique sous forme de graphe**, ce qui permet de voir les divergences et leur résolution. |
|
|
\ No newline at end of file |
|
|
> :eyes: l'option `--graph` de la commande `git log` permet de représenter l'**historique sous forme de graphe**, ce qui permet de voir les divergences et leur résolution.
|
|
|
|
|
|
La situation résultante est illustrée ci-dessous : |
|
|
\ No newline at end of file |