... | @@ -220,14 +220,19 @@ MacBook-Air-749:gitlab-basics sebastienjean$ ls |
... | @@ -220,14 +220,19 @@ MacBook-Air-749:gitlab-basics sebastienjean$ ls |
|
README.md unFichier.txt
|
|
README.md unFichier.txt
|
|
```
|
|
```
|
|
|
|
|
|
On valide une nouvealle version incluant ce fichier :
|
|
On valide une nouvelle version incluant ce fichier :
|
|
|
|
|
|
```bash
|
|
```
|
|
MacBook-Air-749:gitlab-basics sebastienjean$ git add unFichier.txt
|
|
MacBook-Air-749:gitlab-basics sebastienjean$ git add unFichier.txt
|
|
MacBook-Air-749:gitlab-basics sebastienjean$ git commit -m "ajout d'un fichier"
|
|
MacBook-Air-749:gitlab-basics sebastienjean$ git commit -m "ajout d'un fichier"
|
|
[main deebe14] ajout d'un fichier
|
|
[main deebe14] ajout d'un fichier
|
|
1 file changed, 1 insertion(+)
|
|
1 file changed, 1 insertion(+)
|
|
create mode 100644 unFichier.txt
|
|
create mode 100644 unFichier.txt
|
|
|
|
```
|
|
|
|
|
|
|
|
La commande `git log` indique 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.
|
|
|
|
|
|
|
|
```bash
|
|
MacBook-Air-749:gitlab-basics sebastienjean$ git log
|
|
MacBook-Air-749:gitlab-basics sebastienjean$ git log
|
|
commit deebe1462a849bdf6702b5d8064fcee2b479d9d6 (HEAD -> main)
|
|
commit deebe1462a849bdf6702b5d8064fcee2b479d9d6 (HEAD -> main)
|
|
Author: sebastienjean <baz.jean@gmail.com>
|
|
Author: sebastienjean <baz.jean@gmail.com>
|
... | @@ -242,8 +247,6 @@ Date: Sun Jan 23 10:13:01 2022 +0000 |
... | @@ -242,8 +247,6 @@ Date: Sun Jan 23 10:13:01 2022 +0000 |
|
Initial commit
|
|
Initial commit
|
|
```
|
|
```
|
|
|
|
|
|
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` :
|
|
Ceci est confirmé par la commande `git status` :
|
|
|
|
|
|
```bash
|
|
```bash
|
... | @@ -255,6 +258,8 @@ Your branch is ahead of 'origin/main' by 1 commit. |
... | @@ -255,6 +258,8 @@ Your branch is ahead of 'origin/main' by 1 commit. |
|
nothing to commit, working tree clean
|
|
nothing to commit, working tree clean
|
|
```
|
|
```
|
|
|
|
|
|
|
|
Cette situation peut être illustrée de la manière suivante :
|
|
|
|
|
|

|
|

|
|
|
|
|
|
> :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. :warning: **Ce commit doit être explicitement transmis au serveur**
|
|
> :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. :warning: **Ce commit doit être explicitement transmis au serveur**
|
... | @@ -267,20 +272,22 @@ Lors de cette opération : |
... | @@ -267,20 +272,22 @@ 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`
|
|
- le client `git` local compare l'état de la branche locale `main` et de la branche de _remote-tracking_ `origin/main`
|
|
|
|
|
|

|
|

|
|
|
|
|
|
- il détermine ce qui doit être transmis au serveur distant (ici, le commit `1`)
|
|
- il détermine ce qui doit être transmis au serveur distant (ici, le commit `1`, accroché à `0`)
|
|
- il dialogue avec le serveur pour échanger le ou les commits manquants
|
|
- 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`
|
|
- _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
|
|
- le serveur distant accepte ce changement, **met à jour son historique local** et en informe le client local
|
|
|
|
|
|

|
|

|
|
|
|
|
|
- le client local prend note de l'acceptation des changements et met à jour la branche de _remote-tracking_
|
|
- le client local prend note de l'acceptation des changements et **met à jour la branche de _remote-tracking_**
|
|
|
|
|
|

|
|

|
|
|
|
|
|
> :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.
|
|
> :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 :
|
|
Ici, cette opération se déroule normalement et conduit à ce que les dépôts locaux et distants soient de nouveau à jour :
|
|
|
|
|
... | | ... | |