... | ... | @@ -258,4 +258,89 @@ 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` : |
|
|
\ No newline at end of file |
|
|
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.
|
|
|
(use "git push" to publish your local commits)
|
|
|
|
|
|
nothing to commit, working tree clean
|
|
|
```
|
|
|
|
|
|
<p align="center">
|
|
|
<img src="uploads/62d131b8cb94717b85b1e8c09e884a98/GitCloneThenCommit.png" width="50%" />
|
|
|
</p>
|
|
|
[//]: 
|
|
|
|
|
|
> :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`
|
|
|
|
|
|
<p align="center">
|
|
|
<img src="uploads/6ab0a5bbf04da3c3809dd78ed536970d/GitPush1.png" width="50%" />
|
|
|
</p>
|
|
|
[//]: 
|
|
|
|
|
|
- il détermine ce qui doit être transmis au serveur distant (ici, le dernier commit)
|
|
|
- il dialogue avec le serveur pour échanger le ou les commits manquants
|
|
|
- il lui indique ici que le commit `deebe146` soit être raccroché à la suite du commit `fd7357b0`
|
|
|
- le serveur distant accepte ce changement, met à jour son historique local et en informe le client local
|
|
|
|
|
|
<p align="center">
|
|
|
<img src="uploads/34032840fdc58814826132ae4820af9e/GitPush2.png" width="50%" />
|
|
|
</p>
|
|
|
[//]: 
|
|
|
|
|
|
- le client git local prend note de l'acceptation des changements et met à jour la branche de *remote-tracking*
|
|
|
|
|
|
<p align="center">
|
|
|
<img src="uploads/547607e77e2671a12d2dc19f00ab384f/GitPush3.png" width="50%" />
|
|
|
</p>
|
|
|
[//]: 
|
|
|
|
|
|
> :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 :
|
|
|
|
|
|
```bash
|
|
|
MacBook-Air-749:gitlab-basics sebastienjean$ git push
|
|
|
Enumerating objects: 4, done.
|
|
|
Counting objects: 100% (4/4), done.
|
|
|
Delta compression using up to 4 threads
|
|
|
Compressing objects: 100% (2/2), done.
|
|
|
Writing objects: 100% (3/3), 305 bytes | 305.00 KiB/s, done.
|
|
|
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
|
|
|
To https://gitlab.iut-valence.fr/jeans/gitlab-basics.git
|
|
|
fd7357b..deebe14 main -> main
|
|
|
MacBook-Air-749:gitlab-basics sebastienjean$ git status
|
|
|
On branch main
|
|
|
Your branch is up to date with 'origin/main'.
|
|
|
|
|
|
nothing to commit, working tree clean
|
|
|
MacBook-Air-749:gitlab-basics sebastienjean$ git log
|
|
|
commit deebe1462a849bdf6702b5d8064fcee2b479d9d6 (HEAD -> main, origin/main, origin/HEAD)
|
|
|
Author: sebastienjean <baz.jean@gmail.com>
|
|
|
Date: Sun Jan 23 21:31:04 2022 +0100
|
|
|
|
|
|
ajout d'un fichier
|
|
|
|
|
|
commit fd7357b0eda5a17ed4b66b995751219f303a85cd
|
|
|
Author: Sebastien Jean <sebastien.jean@univ-grenoble-alpes.fr>
|
|
|
Date: Sun Jan 23 10:13:01 2022 +0000
|
|
|
|
|
|
Initial commit
|
|
|
```
|
|
|
|
|
|
<p align="center">
|
|
|
<img src="uploads/57dcbb31e0cbd6609a0b8af9c85fe030/GitPush4.png" width="50%" />
|
|
|
</p>
|
|
|
[//]:  |
|
|
\ No newline at end of file |