
Git - Avancé
Formation créée le 10/03/2025.
Version du programme : 1
Programme de la formation
Objectif de la formation : Cette formation avancée vise à permettre aux participants d’approfondir leur maîtrise de Git en explorant ses fonctionnalités avancées : gestion des branches complexes, résolution avancée des conflits, automatisation avec Git Hooks, workflows collaboratifs (GitFlow, GitOps), et optimisation des performances.
Objectifs de la formation
- Maîtriser les branches avancées et les workflows collaboratifs (GitFlow, Trunk-Based Development, Forking Workflow)
- Gérer les conflits avancés et effectuer des modifications complexes (rebase, cherry-pick, squash, interactive rebase)
- Utiliser les Git Hooks et automatiser des tâches avec des scripts personnalisés
- Gérer l’historique Git et nettoyer les commits avec rebase et amend
- Sécuriser et optimiser les performances des dépôts Git
- Automatiser l'intégration et le déploiement avec GitLab CI/CD et GitHub Actions
Profil des bénéficiaires
Pour qui
- Développeurs expérimentés travaillant en équipe
- Architectes logiciels et responsables techniques
- Ingénieurs DevOps souhaitant approfondir Git dans les pipelines CI/CD
- Administrateurs de dépôts Git (GitHub, GitLab, Bitbucket)
Prérequis
- Bonne maîtrise des commandes de base de Git
- Expérience de travail avec les branches et les dépôts distants
- Connaissance des flux de travail collaboratifs avec Git (merge, pull request, push)
Contenu de la formation
-
Gestion avancée des branches et des workflows Git (2h)
- Différents workflows collaboratifs : GitFlow, Trunk-Based Development, Forking Workflow
- Comparaison des stratégies de fusion : Merge vs Rebase vs Cherry-Pick
- Bonnes pratiques pour la gestion des branches en entreprise
- Travail Pratique : Mise en place d’un workflow GitFlow complet sur un projet
-
Rebase, Squash et gestion avancée des commits (2h)
- Rebase interactif (git rebase -i)
- Fusion de commits (git squash)
- Annulation et modification de commits (git amend, git reset, git revert)
- Comparaison entre rebase et merge
- Travail Pratique : Réécriture de l’historique Git avec rebase et squash pour améliorer la lisibilité des commits
-
Gestion avancée des conflits et des merges (2h)
- Identification et résolution des conflits complexes
- Outils avancés pour gérer les conflits : diff, merge tools (VS Code, Meld, Beyond Compare)
- Techniques de merge automatique et gestion des conflits avec rerere
- Travail Pratique : Simulation de conflits complexes et résolution efficace avec Git Mergetool
-
Optimisation et nettoyage d’un dépôt Git (1h)
- Réduction de la taille d’un dépôt : git gc, git prune, git fsck
- Recherche et suppression des fichiers volumineux avec BFG Repo Cleaner
- Nettoyage des branches locales et distantes
- Travail Pratique : Optimisation d’un dépôt Git contenant des fichiers volumineux
-
Automatisation avec Git Hooks (2h)
- Introduction aux Git Hooks (pre-commit, pre-push, post-merge)
- Automatisation des vérifications de code (linting, tests unitaires avant commit)
- Scripts personnalisés pour sécuriser les workflows Git
- Travail Pratique : Création d’un hook pré-commit pour bloquer les commits contenant des erreurs de syntaxe
-
Sécurisation des dépôts et gestion des accès (2h)
- Gestion des droits d’accès sur GitHub/GitLab
- Chiffrement et protection des secrets avec GitCrypt et GPG signing
- Configuration des rules et protections sur les branches
- Travail Pratique : Configuration des protections sur un dépôt GitHub/GitLab (merge request approvals, branch protection rules)
-
GitOps : Intégration de Git avec les pipelines CI/CD (3h)
- Introduction à GitOps et Infrastructure as Code (IaC)
- Gestion des workflows de CI/CD avec GitHub Actions et GitLab CI/CD
- Automatisation du déploiement avec Git
- Travail Pratique : Mise en place d’un pipeline GitLab CI/CD pour tester et déployer automatiquement un projet
-
Travail collaboratif et pull requests avancées (2h)
- Stratégies avancées pour gérer les Pull Requests et Code Reviews
- Bonnes pratiques pour les Merge Requests et approbations
- Gestion des reverts et rollbacks en cas de problème
- Travail Pratique : Mise en place d’un processus de validation avec code review et merge request sur GitHub/GitLab
-
Git avancé et intégration avec des outils externes (2h)
- Analyse des logs et tracking des modifications (git log, git blame, git bisect)
- Intégration avec Jira, Trello et autres outils de gestion de projet
- Gestion avancée des sous-modules Git (git submodule, git subtree)
- Travail Pratique : Utilisation de git bisect pour identifier un bug dans l’historique du projet
-
Cas pratique final - Simulation d’un workflow en entreprise (3h)
- Déploiement d’un processus complet de collaboration Git en équipe
- Configuration d’un pipeline CI/CD avec tests et validation automatique
- Simulation de scénarios de rollback et d’urgence en production
- Travail Pratique : Mise en place d’un workflow GitOps avec une gestion avancée des branches et CI/CD
Équipe pédagogique
Professionnel expert technique et pédagogique.