# 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 travail 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. Marquer une version * Git tag 2. 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écupé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 * Comment créer une divergence * Explications * Illustrations / Exemple * Fusion 2. Application à Git * Gestion des branches * Changer de branche * Visualisation 3. Fusionner des branches * Le merge * Le rebase * Avertissement * Comparaison avec le merge * Application simple * Rebase interactif * Le cherry-pick 6. Résolution de conflitss 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 3. Historiques divergents * Quand parle-t-on de divergence ? * Comment diverge-t-on ? * Résoudre des divergences ? 7. Travail collaboratif avec Git et Gitlab