Les commandes présentées ci-dessous peuvent avoir des paramètres et fonctionnalités supplémentaires qui sont disponibles sur la [doc de git](https://git-scm.com/docs).
**Légende**
* *Hiqtorique (history)* : Ensemble de tous les commits effectués.
* *Curseur (index/stage)* : Ensemble de tous les fichiers qui ont été ajoutés avec `git add ...`.
* *Projet (working directory)* : Emplacement du `.git` ainsi que de tous les fichiers du projet.
Permet d'initialiser un nouveau repository git dans l'emplacement courant ou est exécuté la commande.
##### Commande
```git
git init
```
## Informations utilisateur
#### Explications
Permet de définir vos informations privées pour être identifié lors de commits locaux et distants. Le `--global` permet de modifier ces informations pour tous les repository sauf ceux ou vous avez changé vos informations localement. Le paramètre `--list` permet de visualiser la liste des options/config disponbibles.
Permet d'afficher les fichiers qui ont été ajoutés dans le repository locale, modifier, supprimer ainsi que ceux présent dans le curseur.
##### Commande
```git
git status
```
## Visualiser les différences
##### Explications
Permet d'afficher les modifications effectuées dans tous les fichiers et sous dossiers du repository git.
##### Commande
```git
git diff
```
## Ajoouter au curseur
#### Explications
Permet d'ajouter des éléments qui ont été modifiés du projet au curseur de modification dans le but d'effectuer un commit. **<!> Après avoir ajouter un élément au curseur il est strictement interdit de le modifier <!>**
L'option `.` et `--all` permettent d'ajouter tous les fichiers modifiés au curseur.
#### Commande
```git
git add <file-name>...
git add --all
git add .
```
## Supprimer du curseur
#### Explications
Lors que l'on a ajouter un élément au curseur par erreur et qu'on souhaite l'en retirer pour pouvoir à nouveau l'éditer ou pour le grader hors du prochain commit, il suffit d'utiliser restore avec le paramètre `--stage` qui indique "du curseur"
#### Commande
```git
git restore --stage <file-name>...
```
## Effectuer un commit
#### Explications
Le commit est l'action d'envoyer son curseur dans l'historique, il à comme prérequis la présence d'items dans le curseur et la définition d'un message de commit. Faire un commit revient à indexer une copie du projet dans l'historique git.
La commande pour setup une branche est la même que celle pour envoyer vos commits sur le server à la différence qu'elle prend plus de paramètres, voir la doc pour plus d'informations.
Dans l'example ci-dessous nous configuront la branche `master`, le mot `origin` indique que nous travaillons avec le server configuré précédement, cela permet de faire le lien lors de la configuration.
La configuration d'une branche est une opération qui ne ce réalise qu'une seul fois. Si votre branche est configuré utilisé simplement `push` pour envoyer vos modification.
**<!> Attention pour pouvoir push il faut que votre code soit à jour avec celui des autres développeurs (ces pour cela que l'on utilise des branch) si ce n'est pas le cas utilisez `pull` avant de commit et de push <!>**
#### Commande
```git
git push
git push -u origin master
```
## Télécharger la dernière version du code sur le server
#### Explications
Permet de télécharger sur votre ordinateur les dernières modification effectué sur le repository du server, ce pour vous tenir à jour. Il est très important de rester à jour lorsque l'on travail sur un projet avec plusieurs développeurs.
La commande pull va télécharger les dernières modification et les fusionner si possible avec votre code, attention si vous n'avez pas envoyé vos modification sur le server précédement cela peut dans certain cas poser problème.
#### Commande
```git
git pull
```
## Cloner un projet
#### Explications
Permet de télécharger un projet à vous ou pas, présent sur un server git du type (GitHub, Gitea...) et d'en faire une copie locale.