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.
Demander une convention de formation
- Session du 6 au 8 mars 2019complet !
- Session du 26 au 28 juin 2019
Tarifs indicatifs
Apprenant·e·s de la convention | Tarif unitaire |
---|---|
1 à 2 personnes | 1 200 € HT |
3 à 5 personnes | 1 080 € HT |
À partir de 6 personnes | 960 € HT |