Initialisation de git :

git clone [url] [name]
Copie le repo git en ligne localement.

Staging & Snapshot

git status
Montre les fichiers modifiés dans le dossier, mis à disposition pour le prochain commit.
- - - - 
git diff
Montre les modifications des fichiers (non-staged) par rapport au dernier commit
- - - -
git add [file]
Vous pouvez remplacer [file] avec l'option --all ou -A qui stage tous les fichiers 
non-ignorés.
- - - -
git commit -m "[message]"
Commit les fichiers/dossiers staged. L'option -a permet de stage tout les fichiers 
traqués avant de commit.
- - - -
git reset [file]
Retire le fichier de la zone de staging. Si aucun fichier n'est spécifié tous les 
fichiers sont concernés.

Remote

git push
Transmet les commit de la branche locale à la branche du dépôt distant. 
Au premier push après la création d'une branche vous devez utiliser l'option -u en 
faisant git push -u [alias] [branch] alias=origin par défaut.
- - - -
git pull
Récupère et fusionne les commits de la branche distante

Branche

git branch
Liste les branches
- - - -
git branch [branch]
Crée une branche
- - - -
git switch [branch] ou git checkout [branch]
Change the branche. (Préférez switch (nouveau) à checkout pour le changement de branche)
- - - -
git switch -c [branch]
Equivalent à git branch [branch] && git switch [branch]
- - - -
git merge [branch]
Fusionne la branche [branche] sur la branche actuelle.

Historique

git checkout [commit]
Se déplace au commit designé en mode DETACHED HEAD (passif)
Tu ne peux rien modifier dans cet état,
Pour revenir a l'état de base git checkout [branche_actuelle], ex: git checkout master
- - - -
ATTENTION COMMANDE DANGEREUSE
git reset --hard [commit]
Se déplace au commit désigné en supprimant tous les commit qui suivent 
et réinitialise votre environnement de travail sur celui du commit.

Inspection

git log
Affiche tous les commit de la branche avec leur description
- - - -
git log -n 2
Affiche seulement les deux derniers commit
- - - -
git log -p
Affiche les commit avec leur(s) modification(s) dans les fichiers.
- - - -
git show
Montre les modifications apportées par le commit.

Pistes de recherches :

Cette partie contient des commandes, non presentés durant la conférence, si vous souhaitez pousser les choses plus loins.

git init
Initialise un repo git localement sans passer par un repo en ligne avec git clone.
- - - -
git remote add [name] [url]
Permet d'ajouter, un repo en ligne, si par exemple vous avez utilisé la 
commande git init au lieu de git clone qui ajoute automatiquement le repo en ligne.
- - - -
git submodule add [url]
Ajouter un lien symbolique vers un repo git en ligne, par exemple vous êtes sur le 
projet push_swap et vous ajouter un lien symbolique vers un repo git contenant libft.
- - - -
git submodule update --init 
Télécharge le repo git ajouté avec git submodule add.
- - - -
git clean [-f ou -i ou -d]
Supprime tout les fichiers/dossiers untracked
- - - -
git restore .
Réinitialise les fichiers (non-staged) à leur état du dernier commit.
- - - -
git clone --recurse-submodules [url] [name]
La commande git clone sauf que ca télécharge égalemment les submodules.

Remarques :

git pull -> équivalent à -> git fetch && git merge

HEAD~1 -> 1 commit en arrière
HEAD~2 -> 2 commit en arrière
HEAD~n -> n commit en arrière
ex : git reset --hard HEAD~2 
Retourne 2 commit en arrière