Update Gestion de versions locale avec git, les bases authored by Sebastien Jean's avatar Sebastien Jean
......@@ -37,7 +37,7 @@ hint: git branch -m <name>
Initialized empty Git repository in /Users/sebastienjean/4git/.git/
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">
<img src="uploads/53f8fee980b061a18b9ffa7d03c1d2ea/GitInit.png" width="50%" />
......@@ -86,12 +86,12 @@ MacBook-Air-749:.git sebastienjean$
> :bulb: Pour rappel, un _commit_ répond aux questions :
> - **quand** ? (*quand la version a été produite*)
> - **qui** ? (*par qui la version a été produte*)
> - **pourquoi** ? (*ce qui justifie cette version*)
> - **comment** ? (*les changements opérés dans cette version*)
> - **quand ?** (*quand la version a été produite*)
> - **qui ?** (*par qui la version a été produte*)
> - **pourquoi ?** (*ce qui justifie 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]
......@@ -141,7 +141,7 @@ Ici, plusieurs informations sont données :
- la branche courante est `master`
- 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
Cette situation 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 :
- `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
......@@ -282,7 +282,7 @@ MacBook-Air-749:4git sebastienjean$
__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
MacBook-Air-749:4git sebastienjean$ git diff
......@@ -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 :
- _working tree_ Vs `HEAD` :
- _Working Tree_ Vs `HEAD` :
```diff
MacBook-Air-749:4git sebastienjean$ git diff unFichier.txt
diff --git a/unFichier.txt b/unFichier.txt
......@@ -352,7 +352,7 @@ index 927b61b..ee051bd 100644
+Une autre ligne de texte
```
- _working tree_ Vs `HEAD~1` :
- _Working Tree_ Vs `HEAD~1` :
```diff
MacBook-Air-749:4git sebastienjean$ git diff HEAD~1 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
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 :
......@@ -451,18 +451,16 @@ index 927b61b..ee051bd 100644
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
MacBook-Air-749:4git sebastienjean$ git diff HEAD~2 HEAD unFichier.txt
MacBook-Air-749:4git sebastienjean$
```
## Ressources utiles
## Ressources utiles :
- [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