Git Total

Découvrir, comprendre et maîtriser Git, les bonnes pratiques pour booster la productivité seul·e ou en équipe…

Objectifs

La formation Git Total vise à permettre aux apprenants qui la suivent de :

  • prendre en main l’outil Git et son environnement de travail ;
  • maîtriser l’ensemble des concepts qui sous-tendent les commandes Git et le fonctionnement général de l’outil ;
  • améliorer leur productivité et réduire leurs contraintes de développement en tirant au mieux parti des possibilités de Git ;
  • collaborer plus efficacement avec leurs collègues de projet en maîtrisant les mécanismes de gestion de branches, de fusion, et de réorganisation d’historique ;
  • savoir gérer une urgence alors que le dépôt n’est pas dans un état stable ou cohérent.
  • faciliter la mise en œuvre de normes d’écriture de code dans la société ;
  • automatiser les processus de gestion de code en rapport avec le dépôt Git ;
  • partager efficacement du code entre plusieurs projets tout en assurant une maintenance, centralisée ou distribuée.

Grâce à ce format, les apprenants peuvent solidement ancrer leurs acquis Git tout frais, et s’approprient mieux les nombreuses commandes et scenarii variés présentés au fil de la formation. C’est véritablement une formule parfaite.

Public visé

La formation Git Total s’adresse principalement aux personnes travaillant sur des dépôts en gestion de source.

Elle vise aussi bien les personnes utilisant déjà Git qui souhaitent parfaire et étendre leur compréhension de l’outil et leurs connaissances (ou ont, à l’instar de la majorité des utilisateurs, le sentiment de sous-utiliser l’outil, de faire « du Subversion en Git »), que celles qui désirent passer à Git dans les meilleures conditions possibles.

La formation répond aux frustrations de ceux qui perçoivent qu’ils passent à côté de nombreuses fonctionnalités utiles, à même de considérablement accélérer leur travail quotidien.

Une connaissance préalable d’au moins un gestionnaire de sources répandu, tel que Subversion, Perforce, ClearCase, TFS, Mercurial ou Bazaar, est utile afin d’avoir déjà une familiarité avec les concepts basiques tels que les révisions/versions/commits, le tronc/master, les branches et les tags. Il ne s’agit toutefois pas d’un prérequis.

Programme

Préparer son environnement de travail

  • Configurations globale et locale
  • Aliases et raccourcis incontournables
  • Activer les complétions automatiques
  • Informations d’état automatiques dans le prompt

Concepts de la gestion de dépôt Git

  • Les « zones » : working directory/tree, index/stage, dépôt
  • Les « états » : non versionné, modifié, staged, non modifié
  • Aperçu du dossier .git

Premier dépôt

  • Initialisation
  • Import initial
  • Exclusions globale et locale (.gitignore, .git/info/exclude…)
  • Savoir ce qu’on a dans chaque zone / état en utilisant efficacement git diff
  • La notion critique de HEAD
  • Syntaxes de révision : du basique à l’avancé, mais toujours utile
  • Optimiser la consultation de l’historique : merveilles cachées de git log.

Commits atomiques et approche chirurgicale

  • Ajouts partiels
    • seulement certains fichiers ou certaines parties de fichiers
  • Unstaging
    • Annuler le dernier commit
    • Modifier le dernier commit
    • Raccourcis fréquents et pratiques

Gérer l’urgence avec le stash

  • Mettre son travail de côté le temps d’une tâche urgente
  • Récupérer le stash
    • façon classique ou dans une nouvelle branche,
    • avec ou sans le stage
    • avec ou sans les untracked
  • Aspect pratique face au conservatisme de Git lors d’une demande de fusion

Récupérer un commit « perdu »

  • Le reflog
  • Modalités de préservation et de purge

Gestion de branches

  • Une branche en Git, c’est quoi au juste ? Contraste avec les systèmes plus classiques (SVN, etc.)
  • Fusion classique
  • Fast-forward
  • Stratégies de fusion et décisions automatiques
  • Méthodologie de résolution de conflits
  • Fusion vs. Rebasing : quand, pour qui, pourquoi ?
  • Scenarii classiques de rebasing
  • Stratégies de gestion de branches et de collaboration

Git reset, le couteau suisse méconnu de Git

  • Un reset, qu’est-ce que c’est ?
  • Les 5 modes de reset
  • Scenarii classiques où reset nous sauve la vie
  • Resets irréparables ou non
  • Ne jamais perdre un commit grâce au reflog

Prendre soin de son historique de révisions

  • Un historique au cordeau : quels intérêts ?
  • Réordonner les commits
  • Supprimer des commits
  • Découper des commits
  • Fusionner des commits
  • Annuler un commit ancien

Dépôts distants

  • Autant de remotes qu’on veut…
  • Protocoles réseau de Git : préférences selon le contexte
  • Bien comprendre les relations entre fetch, merge, rebase, pull et push
  • Tracking ou non ?
  • Branches distantes vs. branches locales
  • Les bons réflexes pour avoir un push et un pull qui fonctionnent bien

Récupérer des portions choisies de l’historique

  • Cherry-picking
  • Lister rapidement les commits et branches pertinents

Traquer automatiquement l’origine d’un bug

  • Principe de recherche dichotomique
  • Exécution manuelle de git bisect
  • Scripting et automatisation de bisect

Enregistrer puis partager la résolution manuelle d’une fusion

  • Configuration du rerere
  • Enregistrer la résolution du conflit
  • Exploitation automatique et vérification manuelle
  • Workflow appliqué : éviter les merges de contrôle sur les branches de longue durée

Comprendre et maîtriser les submodules

  • Principes fondamentaux
  • Différences avec svn:externals
  • Mise en place
  • Déploiement
  • Mises à jour
  • Les nombreux pièges

Comprendre et maîtriser les subtrees

  • Principes et contraste avec les submodules
  • Mise en place
  • Déploiement
  • Mises à jour
  • Subtrees ou submodules ? Quel choix pour quelle situation ?

Automatiser des traitements sur événements

  • Les hooks
  • Hooks en local et côté serveur
  • Scenarii classiques d’utilisation
  • Quelques exemples concrets

Moyens pédagogiques et techniques, suivi et appréciation

Les apprenant·e·s reçoivent, chaque début de journée, l’ensemble des diapositives du support de cours au format web, afin de pouvoir faciliter leur suivi du plan de cours.

Après la session, ils reçoivent par ailleurs, avec un e-mail de debrief très fourni et riche en ressources, une archive de référence, contenant les codebases finalisées, entièrement documentées et testées, les slides de toute la formation et diverses ressources complémentaires.

Tarifs indicatifs

Apprenant·e·s de la conventionTarif unitaire
1 à 2 personnes  1 200 € HT
3 à 5 personnes  1 080 € HT
À partir de 6 personnes  960 € HT