# Plan de la présentation ## À propos La formation sur git durera une journée (~6/7 heures). Elle abordera à la fois l'utilisation de Git (local et remotes) mais aussi les méthodes de gestion de travail propres à GitLab. **Comment lire ce plan ?** Les sections sont numérotés en niveau 1. Les sous-sections en niveau 2. Une indentation sous la section/sous section est un titre, deux un sous-titre. Un niveau sans "fils" est une frame. ## Plan 1. Introduction * Qu'est ce que git ? * Pourquoi la gestion de version ? * Différents logiciels de gestion de version * Petite histoire de Git *(transition ?)* 2. Versionner son code 1. Configuration et initialisation * Création d'un dépôt Git * Configuration locale / configuration globale 2. Gestion théorique * Working Directory vs. Staging Area vs. Repository * Explications * Schéma * Fonctionnement de Git 3. Gestion linéaire en pratique * Créer des versions * Working directory <-> staging area * Staging area <-> repository * Dissection d'un commit * Visualiser les différences * Git log * Git diff * Git show 3. Utiliser les versions 1. Mettre de côté ses modifications * Enregistrer les modifications locales * Restaurer les modifications locales 2. Parcourir l'historique * Changer de version * Revenir au dernier commmit * Annuler des changements 3. Annuler des commits * Sans modification d'historique * Avec modification d'historique * Git reset * Git commit --amend 4. Utilisation des remotes 1. Présentation * Le concept des remotes * Exemples de remotes * Création d'un dépôt distant 2. Réucupérer du travail existant * Cloner un dépôt existant * Tirer des changements 3. Envoyer son travail * Pousser des commits 5. Gestion non-linéaire 1. Explications théoriques * Principe de gestion non linéaire * Création d'une divergence * Cas 1 *(création d'une branche)* * Cas 2 *(création de deux branches)* * Explications * Illustrations / Exemple * Fusion 2. Application à Git * Gestion des branches * Changer de branche * Visualisation 3. Fusionner des branches * Deux manières de fusionner des branches * Le merge * Le rebase * Avertissement * Comparaison avec le merge * Application 6. Résolution de conflits 1. Les conflits * Qu'est-ce qu'un conflit ? * Exemple de situation conflictuelle * Comment se présente un conflit ? * Concrètement, quand peut-on avoir un conflit ? * Merge * Rebase * Pull 2. Résoudre un conflit * En théorie * Application 7. Travail collaboratif avec Git et Gitlab