Créer un repository
En quelques commandes
Créer un repository local
git init
Lier votre repo local à votre repo distant (hébergé où vous le souhaitez)
git remote add origin https://mon-url-de-repo/

Récupérer des modifications distantes
en quelques commandes
Récupérer un repository distant existant
git clone https://mon-url-de-repo/
Mettre à jour l'image locale du repo distant
git fetch
Mettre à jour l'image locale du repo distant et mon Working Directory
git pull
Prendre en compte une modification
en quelques commandes
Afficher les changements (pris en compte ou non dans l'index)
git status
Ajouter une modification dans l'index
git add fichier
Enregistrer le contenu de l'index
git commit -m "mon message"
Envoyer les commits locaux sur le repository distant
git push origin nom-branche-distante
La gestion de branche
en quelques commandes
Afficher les branches disponibles
git branch
Créer une branche et se déplacer dedans
git switch -c ma-branche
Se déplacer de branche en branche
git switch un-nom-de-branche
Créer la branche sur le repo distant et la lier à la branche locale
git push -u origin ma-nouvelle-branche
Merge No Fast Forward

Dans ce cas, le merge laisse une trace via un commit de merge. L'historique n'est pas perdu, mais n'apparait pas sur la branche master.
Merge Fast Forward

Dans ce cas, le merge ne laisse pas de trace. L'historique apparait sur la branche master, à la suite des commits déjà existants.
Merge Squash

Dans ce cas, le merge laisse une trace via un commit unique. L'historique est perdu et n'apparait pas sur la branche master.
Merger
en quelques commandes
Merger en Fast Forward - C'est l'option par défaut
git merge nom-branche-à-merger
ou
git merge --ff branche
Merger en No Fast Forward
git merge --no-ff branche
Merger en Squash
git merge --squash branche
Commit
Normes de nommage
Pour faciliter la compréhension du contenu, mais aussi la génération d'un changelog
Il existe une norme pour nommer ses commits :
type(scope): message de commit

Norme angular

Git Flow
Modèle d'organisation des branches
Pour faciliter la compréhension du contenu de chaque branche, chacune est identifiée par un préfixe ou nom unique
Cette norme découle de l'outil créé par Vincent DRIESSEN qui permet de faire cela automatiquement.
L'initialisation d'un projet est fait via
git flow init

Utilisation simple
Git Flow

Utilisation avancée
Git Flow

Git au quotidien
Les interdits
- Bypasser une Pull Request
- Merger dans une branche de référence (master/develop)
- Pousser sur une branche de référence
Git au quotidien
Les incontournables
- Travailler sur sa branche
Permet de limiter les conflits
- Bien nommer ses commits
Permet d'avoir un historique clair
- N'avoir qu'une seule release par version
Permet de gérer les sources avec simplicité