Objectifs
Git est un système de contrôle de version distribué gratuit et en licence open source. Il a été conçu pour traiter aussi bien des petits ou de très gros projets avec rapidité et efficacité. Git surclasse les autres outils de SCM comme Subversion, CVS, Perforce et ClearCase par sa performance, la taille des dépôts et des fonctionnalités uniques. Cette formation GIT présente les concepts théoriques de cette technologie et propose de nombreux ateliers pratiques. Après un chapitre introductif, le premier atelier d'installation et l’apprentissage des commandes de bases, la formation se concentre sur l'organisation des équipes de développement autour de GIT en explicitant les commandes, les Workflows et les rôles relatif à la gestion des sources d'un projet. La gestion des branches GIT sera étudiée en profondeur et donne lieu à un chapitre complet. A l'issue de la formation, les participants auront appris à configurer et utiliser GIT dans un contexte de gestion quotidienne des sources d'un projet. Ils vont également apprendre à choisir un workflow de collaboration correspondant à leurs projets parmi les différents proposés. Les outils associés et en particulier GITLAB seront également présentés au cours de ce stage
A qui s'adresse cette formation
Public :
Ce cours GIT s’adresse à des développeurs, chefs de projet et architectes désireux de comprendre Git.
Prérequis :
Aucun pré-requis n'est nécessaire pour suivre cette formation, cependant la connaissance d'un SCM est un plus.
Contenu du cours
S'initier à GIT
Connaitre l'historique des système de versionning
Git : un système de versionning distribué
Etudier les concepts de Git (organisation du repository, stockage, répertoires)
Analyser les avantages induits (travail local, intégrité)
Panorama des offres autour de l'outil
Installer et mettre en place le GIT
Savoir installer GIT à partir des sources
Savoir installer GIT à partir des binaires
Comprendre la configuration et mise en place de GIT
Les différentes aides disponiblesCréation d'un repository Git
Travaux Pratiques :Installation et configuration d'un GIT local
Apprendre les commandes de base
Rappel sur les 3 états d'un fichier
Vérification du statuts des fichiers
Ajout de fichiers (nouveau ou déjà suivi)
Ignorer des fichiers
Valider les changements
Suppression de fichiers
Déplacement de fichiers
Accès à l'historique
Assimiler les commandes d'annulation
Auto-complétion et Alias
Travaux Pratiques :Manipulation de sources d'un projet
Git et les branches
Illustration des branches sur un exemple
Les branches Git, de simples pointeurs, différence avec les tags
Commandes de gestion de branche et de basculement
La fusion de branche,
Outils de résolution de conflit
L'opération de rebase, différence avec la fusion
Travaux Pratiques :Création de branches fusion et rebasement, gestion de conflit
Serveurs Git, exemple de Gitlab
Mise en place d'un dépôt nu
Les différents protocoles d'accès
Accès SSH avec utilisateur unique, échages de clé privé/publique
La soluion Gitlab, apports
Modèle de données GitLab, rôle et gestion des droits et administration
Mise en place de dépôt
Configuration du client
Travaux Pratiques : Installation Gitla, Mise en place d'un dépôt distant, Echanges de clés SSH, Clone de dépôt
Workflow de collaboration
Introduction et pattern référencé
Les dépôts distants, commandes de gestion
Workflow centralisé, présentation des commandes pull,push et fetch
Les branches distantes, création, synchronisation et suivi
Le pattern Gitflow et son application
Workflow avec intégratieur et son application, le pull request
Les workflows proposés par Gitlab, le merge request
Travaux Pratiques :Travail en équipe, joeur un workflow centralisé et un workflow Gitlab avec revue de code et merge request
Pour aller plus loin sur GIT
Le reflog et les commandes avancéesPersonnalisation de Git avec les hooksMigration SVN vers Git
Travaux Pratiques :Ajout et Rebase interactif, Mise en place de hook client et serveur (via Gitlab)