Git - Avancé

Formation créée le 10/03/2025.
Version du programme : 1

Type de formation

Formation présentielle

Durée de formation

21 heures (3 jours)

Git - Avancé


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.