... | @@ -37,7 +37,7 @@ hint: git branch -m <name> |
... | @@ -37,7 +37,7 @@ hint: git branch -m <name> |
|
Initialized empty Git repository in /Users/sebastienjean/4git/.git/
|
|
Initialized empty Git repository in /Users/sebastienjean/4git/.git/
|
|
MacBook-Air-749:4git sebastienjean$
|
|
MacBook-Air-749:4git sebastienjean$
|
|
```
|
|
```
|
|
La commande a pour effet de créer un dépôt dont le _working tree_ et l'historique sont vides.
|
|
La commande a pour effet de créer un dépôt dont le _Working Tree_ et l'historique sont vides.
|
|
|
|
|
|
<p align="center">
|
|
<p align="center">
|
|
<img src="uploads/53f8fee980b061a18b9ffa7d03c1d2ea/GitInit.png" width="50%" />
|
|
<img src="uploads/53f8fee980b061a18b9ffa7d03c1d2ea/GitInit.png" width="50%" />
|
... | @@ -86,12 +86,12 @@ MacBook-Air-749:.git sebastienjean$ |
... | @@ -86,12 +86,12 @@ MacBook-Air-749:.git sebastienjean$ |
|
|
|
|
|
> :bulb: Pour rappel, un _commit_ répond aux questions :
|
|
> :bulb: Pour rappel, un _commit_ répond aux questions :
|
|
|
|
|
|
> - **quand** ? (*quand la version a été produite*)
|
|
> - **quand ?** (*quand la version a été produite*)
|
|
> - **qui** ? (*par qui la version a été produte*)
|
|
> - **qui ?** (*par qui la version a été produte*)
|
|
> - **pourquoi** ? (*ce qui justifie cette version*)
|
|
> - **pourquoi ?** (*ce qui justifie cette version*)
|
|
> - **comment** ? (*les changements opérés dans cette version*)
|
|
> - **comment ?** (*les changements opérés dans cette version*)
|
|
|
|
|
|
Le fichier de configuration locale permet de paramétrer l'identité de l'auteur des commits, de sorte que l'outil _git_ les utilise automatiquement. Ceci se fait en ajoutant la section `[user]` à la suite de la section `[core]` déjà présente :
|
|
Le fichier de configuration locale permet de paramétrer l'**identité de l'auteur** des commits, de sorte que l'outil _git_ les utilise automatiquement. Ceci se fait en ajoutant la section `[user]` à la suite de la section `[core]` déjà présente :
|
|
|
|
|
|
```
|
|
```
|
|
[user]
|
|
[user]
|
... | @@ -141,7 +141,7 @@ Ici, plusieurs informations sont données : |
... | @@ -141,7 +141,7 @@ Ici, plusieurs informations sont données : |
|
|
|
|
|
- la branche courante est `master`
|
|
- la branche courante est `master`
|
|
- cette branche ne comporte pas encore de versions (commits)
|
|
- cette branche ne comporte pas encore de versions (commits)
|
|
- git observe dans le _working tree_ l'existence d'un fichier qu'il n'a jamais vu (_untracked_)
|
|
- git observe dans le _Working Tree_ l'existence d'un fichier qu'il n'a jamais vu (_untracked_)
|
|
- aucun changement n'est actuellement intégré à la future prochaine version
|
|
- aucun changement n'est actuellement intégré à la future prochaine version
|
|
|
|
|
|
Cette situation est illustrée ci-dessous :
|
|
Cette situation est illustrée ci-dessous :
|
... | @@ -219,9 +219,9 @@ La situation résultante est illustrée ci-dessous : |
... | @@ -219,9 +219,9 @@ La situation résultante est illustrée ci-dessous : |
|
Les changements pris en compte (consignés en zone `staged`) forment une nouvelle version notée ici `0`. A l'historique sont associés 2 pointeurs :
|
|
Les changements pris en compte (consignés en zone `staged`) forment une nouvelle version notée ici `0`. A l'historique sont associés 2 pointeurs :
|
|
|
|
|
|
- `Master`, qui désigne le dernier commit (la version la plus récente) de la branche (il se déplace d'un cran vers la droite à chaque commit, et est forcément toujours à droite)
|
|
- `Master`, qui désigne le dernier commit (la version la plus récente) de la branche (il se déplace d'un cran vers la droite à chaque commit, et est forcément toujours à droite)
|
|
- `HEAD`, qui désigne le commit sur lequel est basé la reconstruction du _working tree_ (il suit généralement le pointeur `Master` mais il est possible de le déplacer explicitement sur n'importe quelle version antérieure pour reconstituer l'état du _working tree_ dans cette version)
|
|
- `HEAD`, qui désigne le commit sur lequel est basé la reconstruction du _Working Tree_ (il suit généralement le pointeur `Master` mais il est possible de le déplacer explicitement sur n'importe quelle version antérieure pour reconstituer l'état du _Working Tree_ dans cette version)
|
|
|
|
|
|
L'exécution de la commande `git status` montre que l'état du `working tree` est en phase avec la version `HEAD` (_clean_).
|
|
L'exécution de la commande `git status` montre que l'état du `Working Tree` est en phase avec la version `HEAD` (_clean_).
|
|
|
|
|
|
```
|
|
```
|
|
MacBook-Air-749:4git sebastienjean$ git status
|
|
MacBook-Air-749:4git sebastienjean$ git status
|
... | @@ -282,7 +282,7 @@ MacBook-Air-749:4git sebastienjean$ |
... | @@ -282,7 +282,7 @@ MacBook-Air-749:4git sebastienjean$ |
|
|
|
|
|
__N.B.__ : ici, le fichier est déjà connu.
|
|
__N.B.__ : ici, le fichier est déjà connu.
|
|
|
|
|
|
La commande [`git diff`](https://git-scm.com/docs/git-diff), sans paramètre, nous permet de comparer le _working tree_ et la version `HEAD` (et ainsi voir tout ce qui est déclaré _unstaged_) :
|
|
La commande [`git diff`](https://git-scm.com/docs/git-diff), sans paramètre, nous permet de comparer le _Working Tree_ et la version `HEAD` (et ainsi voir tout ce qui est déclaré _unstaged_) :
|
|
|
|
|
|
```diff
|
|
```diff
|
|
MacBook-Air-749:4git sebastienjean$ git diff
|
|
MacBook-Air-749:4git sebastienjean$ git diff
|
... | @@ -328,7 +328,7 @@ MacBook-Air-749:4git sebastienjean$ |
... | @@ -328,7 +328,7 @@ MacBook-Air-749:4git sebastienjean$ |
|
|
|
|
|
Il est alors possible, avec `git diff`, de comparer le contenu du fichier à différentes versions :
|
|
Il est alors possible, avec `git diff`, de comparer le contenu du fichier à différentes versions :
|
|
|
|
|
|
- _working tree_ Vs `HEAD` :
|
|
- _Working Tree_ Vs `HEAD` :
|
|
```diff
|
|
```diff
|
|
MacBook-Air-749:4git sebastienjean$ git diff unFichier.txt
|
|
MacBook-Air-749:4git sebastienjean$ git diff unFichier.txt
|
|
diff --git a/unFichier.txt b/unFichier.txt
|
|
diff --git a/unFichier.txt b/unFichier.txt
|
... | @@ -352,7 +352,7 @@ index 927b61b..ee051bd 100644 |
... | @@ -352,7 +352,7 @@ index 927b61b..ee051bd 100644 |
|
+Une autre ligne de texte
|
|
+Une autre ligne de texte
|
|
```
|
|
```
|
|
|
|
|
|
- _working tree_ Vs `HEAD~1` :
|
|
- _Working Tree_ Vs `HEAD~1` :
|
|
```diff
|
|
```diff
|
|
MacBook-Air-749:4git sebastienjean$ git diff HEAD~1 unFichier.txt
|
|
MacBook-Air-749:4git sebastienjean$ git diff HEAD~1 unFichier.txt
|
|
diff --git a/unFichier.txt b/unFichier.txt
|
|
diff --git a/unFichier.txt b/unFichier.txt
|
... | @@ -370,7 +370,7 @@ __N.B.__ : On peut aussi utiliser en paramètre les _hash_ des commits (abbrévi |
... | @@ -370,7 +370,7 @@ __N.B.__ : On peut aussi utiliser en paramètre les _hash_ des commits (abbrévi |
|
|
|
|
|
La commande [`git checkout`](https://git-scm.com/docs/git-checkout) permet de déplacer le curseur `HEAD`sur une version antérieure. Mais son utilisation pour restaurer tout ou partie de la version en question nécessite de manipuler des branches (ce n'est pas l'objet de ce guide).
|
|
La commande [`git checkout`](https://git-scm.com/docs/git-checkout) permet de déplacer le curseur `HEAD`sur une version antérieure. Mais son utilisation pour restaurer tout ou partie de la version en question nécessite de manipuler des branches (ce n'est pas l'objet de ce guide).
|
|
|
|
|
|
Néanmoins, si on lui indique en paramètre un fichier ou un répertoire, elle remplace le fichier ou le répertoire du _working tree_ avec une version antérieure sans déplacer `HEAD`.
|
|
Néanmoins, si on lui indique en paramètre un fichier ou un répertoire, elle remplace le fichier ou le répertoire du _Working Tree_ avec une version antérieure sans déplacer `HEAD`.
|
|
|
|
|
|
Par exemple, pour restaurer la première version de `unFichier.txt`, il suffit d'exécuter la commande suivante :
|
|
Par exemple, pour restaurer la première version de `unFichier.txt`, il suffit d'exécuter la commande suivante :
|
|
|
|
|
... | @@ -451,18 +451,16 @@ index 927b61b..ee051bd 100644 |
... | @@ -451,18 +451,16 @@ index 927b61b..ee051bd 100644 |
|
MacBook-Air-749:4git sebastienjean$
|
|
MacBook-Air-749:4git sebastienjean$
|
|
```
|
|
```
|
|
|
|
|
|
On visualise les modifications entre la dernière version et son grand-parent, et on observe qu'elles sont bien nulles (on a rétabli le même contenu du _working tree` :
|
|
On visualise les modifications entre la dernière version et son grand-parent, et on observe qu'elles sont bien nulles (on a rétabli le même contenu du _Working Tree` :
|
|
|
|
|
|
```diff
|
|
```diff
|
|
MacBook-Air-749:4git sebastienjean$ git diff HEAD~2 HEAD unFichier.txt
|
|
MacBook-Air-749:4git sebastienjean$ git diff HEAD~2 HEAD unFichier.txt
|
|
MacBook-Air-749:4git sebastienjean$
|
|
MacBook-Air-749:4git sebastienjean$
|
|
```
|
|
```
|
|
|
|
|
|
## Ressources utiles
|
|
## Ressources utiles :
|
|
|
|
|
|
- [Aide en ligne](https://git-scm.com/docs) de l'outil _git_
|
|
- [Aide en ligne](https://git-scm.com/docs) de l'outil _git_
|
|
- [Aide mémoire](https://www.atlassian.com/git/tutorials/atlassian-git-cheatsheet) des commandes usuelles
|
|
- [Aide mémoire](https://www.atlassian.com/git/tutorials/atlassian-git-cheatsheet) des commandes usuelles
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|