Formation Git : GitLab & GitFlow
1350€ HT / personne |
2 jours (14 heures) |
Présentation
En quelques années, Git est devenu le gestionnaire de source le plus utilisé au monde. Basé sur une gestion de versions décentralisée, Git est un logiciel libre et multiplateforme créé par le non moins célèbre Linus Torvalds. Il se veut simple et performant, Git a pour tâche principale de gérer l’évolution du contenu d’une arborescence.
Dans cette formation, vous apprendrez à maîtriser toute sa puissance ainsi qu’à utiliser les nombreux outils autour de ce projet, tels que GitLab et GitHub, et à collaborer efficacement en équipe grâce à Gitflow.
Nous commencerons par appréhender toutes les subtilités de Git en mode développement à travers l’utilisation de commandes de base, puis avancées, pour finir sur la gestion de l’historique et l’interaction avec des dépôts distants.
Nous aborderons également une approche approfondie de GitLab qui depuis sa création a su développer une infrastructure moderne, simple et claire pour devenir aujourd’hui un outil incontournable de gestion de projet web. Plus qu’un simple gestionnaire de code source, GitLab vous permettra de gérer les droits d’accès, les remontées de bugs, les sprints de votre cycle de vie logiciel.
GitLab permet également d’automatiser le déploiement de projets vers la production et avec ses outils complets, il vous permettra une intégration optimale et un développement en continu avec GitLab CI/CD (Continuous Integration & Delivery) qui vous accompagnera dans vos démarches DevOps d’intégration continue.
Et enfin GitFlow le workflow collaboratif multi-branche qui vous permettra une élaboration et maîtrise de vos branches afin de mieux gérer des demandes clients ou leurs documents. Git Flow est une méthode, une architecture Git permettant de séparer au maximum le travail et de toucher le moins possible à la branche Master. Cette méthode représente donc une architecture en branches très efficaces pour vous aider dans vos développements web & logiciel.
Des problèmes de migration vers Git ? Notre module complémentaire est fait pour vous : dans cette partie optionnelle, nous vous proposons de vous accompagner lors de la migration de SVN (Subversion) vers GIT.
Comme dans toutes nos formations, nous utiliserons la dernière version des logiciels (GitLab 17.1 et Git-Flow AVH 1.12)
Objectifs
- Installer et configurer l’outil GIT
- Comprendre les différences entre la gestion de version centralisée et décentralisée
- Gérer efficacement les dépôts locaux et distants
- Manipuler les commandes de GIT pour gérer les fichiers et les branches
- Gestion de workflows et de dépôts git avec GitFlow
- Utilisation des outils d’intégration et de déploiement continus avec GitLab CI
- Gagner en efficacité en utilisant les outils les plus efficaces de l’écosystème GIT
- Intégrer et former rapidement un nouvel arrivant à votre projet
- Appréhender la migration de SVN vers GIT
Public visé
Développeurs, Architectes, Administrateurs système
Pré-requis
Connaissances de base d’un gestionnaire de source
Pré-requis techniques
- Avoir l’outil Git installé
Programme de notre formation GitLab CI & GitFlow avec GIT
Jour 1 – Git & GitFlow
Introduction
- Contexte et historique de la gestion de versions
- Cas d’utilisation
- Présentation de Git
- Avantages de Git
Commandes de base
- Création du dépôt, dossier .git
- Les 3 états de Git
- Commandes add et commit
- Commandes status, log et diff
Les branches
- Intérêt du branching
- Pointeurs et HEAD
- Divergence
- Les différentes méthodes de fusion
- Bonnes pratiques de fusion
Remotes
- Dépôt central et multi-dépôt distants
- Les commandes fetch et pull
- La commande push
- Bonnes pratiques d’interaction
Commandes avancées
- Reset et reflog
- Rebasing, Squashing
- Gestion du Stash
- Blame
- Recherche d’erreurs avec bisect
- Cherry-pick
Jour 2 – Git Flow et GitLab
Workflows collaboratifs
- Pourquoi utiliser un workflow
- Les principaux workflows
- Zoom sur Git Flow et mise en pratique
- Github Flow et GitLab Flow
- Introduction à GitLab
- Forges logicielles
- Features de GitLab
- Comment choisir une forge logicielle
- CE vs EE
Installation de GitLab
- Omnibus vs Docker
- Installation sur GCP
- Configuration GitLab SMTP
- Configuration bas-niveau
Administration de GitLab
- Tour d’horizon de l’interface de gestion
- Administration des projets
- Gestion des commits et du code source
- Gestion des accès
- Assignation des permissions
- Utilisation des issues
- Milestones pour la gestion de projets
Bonnes pratiques de collaboration avec Git et GitLab CI
- Merge requests
- Rebase (+squash, +fast-forward)
- Branches protégées
- Wiki et documentation
- Intégration Continue avec GitLab CI
- Configuration GitLab CI/CD
- Pipelines de CI/CD
- Gestion des runners
- Déploiement continu et GitLab Runner
- Mise en place d’un workflow de collaboration sur GitLab
GitLab CI Avancé (MODULE COMPLÉMENTAIRE + 2 jours)
Utilisez toute la puissance de GitFlow ainsi que la puissante chaîne CI de GitLab
GitFlow
- Branches de features/bugfix
- Branches de versions (et tags)
Installation et déploiement de GitLab
- Les deux modes d’installation seront présentés (docker & .deb)
- Retour d’expérience de la partie administration de GitLab
- À l’issue de la formation, nous laisserons une instance fonctionnelle sur leur serveur
GitLab & GitFlow
- Notions du Merge Request (MR)
- Explorer au travers d’un TP les interactions et collaborations qui peuvent être faites avec une MR, les fonctions qui assistent la revue de code, et les subtilités qui peuvent arriver
- Le Workflow idéal
- Outils externes qui peuvent compléter GitLab dans cette partie
GitLab Issues
- Présentation des issues
- Faire évoluer vos workflows graduellement pour favoriser l’adoption, plutôt qu’être trop disruptif
- Une démonstration & Live démo
GitLab CI
- Faire un TP CI, pour au moins détailler toute la partie GitLab (et éviter Docker)
- Montrer un cas simple avec une CI de tests unitaires (sans Docker)
- Montrer un cas plus intéressant avec des tests fonctionnels. (avec un cas Docker simple)
- Conclusion
MIGRER DE SUBVERSION VERS GIT (MODULE COMPLÉMENTAIRE + 1 jour)
Utilisez GIT en multidépôt et modifiez votre historique
TERMINOLOGIE GIT VS SVN (QR)
MIGRER DE SVN VERS GIT
- Retour d’expérience
- Les différentes méthodes
LA COMMANDE GIT-SVN
- La migration en 2 étapes
- Avantages et inconvénients
- TP: Migrer un dépôt SVN vers GIT
GESTION DE PLUSIEURS DÉPÔTS DISTANTS (REMOTE) AVEC GIT
- Contribuer sur un seul dépôt
- Contribuer sur plusieurs dépôts
- Les différents modes d’intégrations
- Exemple de maintenance d’un dépôt complexe : le projet GIT
- TP: Gérer plusieurs dépôts distants
COMMANDES BASIQUES ET MIGRATION
- Commandes basiques de GIT
- TP : Migration de SVN > GIT
COMMANDES AVANCÉES DE GIT
LES TYPES D’OBJETS
- Commit
- Blob
- Tree
- Tag
PORCELAINE
- Développer
- Inspecter
- Partager
- Fusionner
- Patcher
- Déboguer
- Administrer
- TP: Gérer un cycle complet de versioning
GIT HOOKS & SUB-REPOS SUBTREE VS SUBMODULES
- Dans quel cas utiliser un subtree ou un submodule
- Utiliser la commande native git submodule
- Faire un sub-tree à la main
- Utiliser un script : git-subrepo
GIT ATTRIBUTES
- Traitement des fichiers binaires
- Filtres bi-directionnels (clean & smudge)
- Attributs d’archivage
- Stratégie de fusion
GIT HOOKS
- Environnements des hooks
- Installer les hooks côté client
- Installer les hooks côté serveur
Pour aller plus loin
Formation GitOps
Formation Git Avancé
Formation Jenkins
Formation Ruby on Rails Avancé
Formation Terraform
Formation Terraform Avancé
Langues et Lieux disponibles
Langues
- Français
- Anglais / English
Lieux
-
France entière
- Paris
- Lille
- Reims
- Lyon
- Toulouse
- Bordeaux
- Montpellier
- Nice
- Sophia Antipolis
- Marseille
- Aix-en-Provence
- Nantes
- Rennes
- Strasbourg
- Grenoble
- Dijon
- Tours
- Saint-Étienne
- Toulon
- Angers
-
Belgique
- Bruxelles
- Liège
-
Suisse
- Genève
- Zurich
- Lausanne
-
Luxembourg
Témoignages
Les + : Sensibilisation aux différentes possibilités permises par GIT
Les – : Plus d’exemple d’utilisation des outils de base
En synthèse : L’idée de la formation était de nous montrer les possibilités sans pour autant tout savoir et être autonome sur GIT. De toute façon en 2 jours (à moins d’être un crac) c’est délicat. Je trouve que la formation a répondu à cet objectif. Toutefois il y aurait un petit point à améliorer en ajoutant de petits exercices intermédiaires pour mieux comprendre les mécanismes de base.
Merci au formateur pour la qualité de son exposé et sa maîtrise du sujet.
Afficher tous les témoignages
Les + : Sensibilisation aux différentes possibilités permises par GIT
Les – : Plus d’exemple d’utilisation des outils de base
En synthèse : L’idée de la formation était de nous montrer les possibilités sans pour autant tout savoir et être autonome sur GIT. De toute façon en 2 jours (à moins d’être un crac) c’est délicat. Je trouve que la formation a répondu à cet objectif. Toutefois il y aurait un petit point à améliorer en ajoutant de petits exercices intermédiaires pour mieux comprendre les mécanismes de base.
Merci au formateur pour la qualité de son exposé et sa maîtrise du sujet.
Note : 3/5
Les + : La pédogagie et la clareté de l’intervenant (Cyril)
Les + : Bonne vue d’ensemble de l’outil
Les – : Il faudrait ajouter des cas pratiques ou aller moins vite lors des démonstrations au moins pour ceux qui voyaient cette outil pour la prmière fois.
Il faut éviter d’utiliser des alias que l’on ne connait pas dans les commandes, car même si ils sont très pratiques, ils n’aident pas à la compréhension. Ou alors les expliquer et les donner à chaqun en début de cours.
Les + : Le formateur est très très bon en git et gitlab, aucun doute là dessus. Il est sympa, à l’écoute, clair dans son expression. Il a fait l’effort de nous faire une formation en Python : merci à lui 🙂
Taper les commandes avec git illustration était très bien. cela aurait pu être fait dès le début de la formation je pense 😉
Super les liens dans les slides 🙂
Les – : Le formateur va très vite, il utilise ses alias dans son terminal, utilise régulièrement des clear ce qui efface ce qu’on voit à l’écran.
Et ses exemples sont rapidement inventés par lui en live, donc ne sont pas forcément très pertinents et parlant. C’est souvent des « git commit – m « ceci est message commit 4 » ou echo hay >> stack ce qui fait qu’on se retrouve avec un fichier avec 4 fois le mot hay. Quand on ne connait pas du tout c’est pas très parlant. L’idéal serait d’avoir des fichiers de programme (pas forcément en Python) écrits à l’avance par le formateur : des exemples simples préparés à l’avance qui montrent l’intérêt de chaque nouvelle commande.
Je trouve personnellement que les slides pourraient contenir plus de contenu. Ils ne sont pas auto-porteurs. Si on les reprend dans deux mois, on aura probablement du mal à se souvenir de tout ce que nous a expliqué Cyril le jour de la formation sur chaque ligne de commande (y compris les exemples de ses terminaux) (je ne parle pas des options des commandes qui elles peuvent être facilement trouvées sur le net ; je parle des explications)
Les + : Très bon aperçu des possibilités de l’outil, bonne répartition entre théorie et manip. Très bon formateur.
Les – : formation très dense, beaucoup de sujets sur 2j.
En synthèse : Merci !
Les + : La grosse partie pratique de la fin. Peut-être qu’à 12, on pourrait travailler sur 2 fichiers (opération_str et opération_nbr par ex) pour diviser un peu les pbs.
Les – : J’ai eu du mal à accrocher lors de la première journée, il faudrait peut être réaliser des sondages pour rendre plus dynamique voir même faire manipuler chacun sur chaque petite sous partie (mais on pourrait probablement voir moins de choses)
En synthèse : Merci pour cette overview 🙂
Les + : Souplesse et pédagogie du formateur
Les – : Un 3e jour serait bienvenu
Les + : Le nombre réduit à permis une interaction facilité avec le formateur
Les – : La formation en 2 jours est bien peu courte pour appréhender l’ensemble des objectifs
Je souhaite suivre : formation HTML – PHP
En synthèse : Cette formation sur 3 ou 4 jours seraient plus appréciables pour assimiler l’ensemble de la formation
Je recommande la formation
Les + : Très bonnes explications du formateur et sa disponibilité
Les – : Pour la partie pratique, des cas types plutôt que des exercices parfois alambiqués m’auraient été plus utiles.
Il manque notamment une mise en pratique sur l’utilisation de GitLab (ex : travailler sur un projet test avec des actions types à faire, les recommandations de méthodes de travail)
Les + : Grande clarté du professeur
Les – : Il faudrait peut être un environnement virtuel pour tester gitlab et la CICD
Je souhaite suivre : Machine learning
Navigation Site Reviews
Noter la formation
1350€ HT / personne |
2 jours (14 heures) |
UNE QUESTION ? UN PROJET ? UN AUDIT DE CODE / D'INFRASTRUCTURE ?
Pour vos besoins d’expertise que vous ne trouvez nulle part ailleurs, n’hésitez pas à nous contacter.
ILS SE SONT FORMÉS CHEZ NOUS