@@ -259,3 +259,88 @@ Date: Sun Jan 23 10:13:01 2022 +0000
On observe que les pointeurs `HEAD` et `main` sont en avance d'un commit par rapport à `origin/main`, ce qui veut signifie que le dépôt local est en avance d'un commit par rapport au dépôt distant.
Ceci est confirmé par la commande `git status` :
```bash
MacBook-Air-749:gitlab-basics sebastienjean$ git status
On branch main
Your branch is ahead of 'origin/main' by 1 commit.
> :bulb L'opération `commit` est **toujours locale**, comme illustré ci-dessus. L'observation de l'état du dépôt distant via l'URL ne montre pas de nouveau commit.
> **ce commit doit être explicitement transmis au serveur**
#### Synchronisation amont du dépôt local
L'envoi des commits manquants s'effectue via la commande `git push`.
Lors de cette opération :
- le client git local compare l'état de la branche locale `main` et de la branche de *remote-tracking*`origin/main`
> :bulb Le serveur n'accepte les changements que s'ils consistent à raccrocher des commits manquants derrière un commit présent sur le serveur (*fast-forward*). Lorsque plusieurs contributeurs travaillent sur des clones locaux d'un même dépôt distant, l'envoi de commits par un contributeur peut échouer car de nouveaux commits ont pu être déposés par un autre contributeur avant la comparaison locale des historiques (*non fast-forward*). Cette situation est courante, donne lieu à une resynhcronisation aval (`pull`) et éventuellement une résolution locale de conflits de modifications.
Ici, cette opération se déroule normalement et conduit à ce que les dépôts locaux et distants soient de nouveau à jour :