Logo Git

Formation Git

Git est un logiciel de gestion de version de code source. Il permet aux développeurs de suivre et de gérer les modifications apportées au code source d'un projet de logiciel au fil du temps. Git stocke ces modifications sous forme de "commits", qui sont des instantanés du code source à un moment donné. Les développeurs peuvent naviguer entre les différents commits pour voir comment le code a évolué au fil du temps et peuvent également fusionner des commits pour fusionner des modifications de code. Git est particulièrement utile lorsque plusieurs développeurs travaillent sur le même projet de logiciel, car il permet de gérer les conflits de code et de travailler de manière collaborative. Git est également utile pour sauvegarder le code source d'un projet et pour le rendre disponible à plusieurs personnes. Git est un logiciel open source qui est largement utilisé dans l'industrie du développement de logiciels et est devenu l'un des outils de gestion de version de code source les plus populaires au monde. Il est disponible sur de nombreuses plateformes, y compris Windows, macOS et Linux.

Objectifs pédagogiques / Compétences visées

  • Maitriser les commandes git du quotidien
  • Travailler avec les branches
  • Pouvoir revenir à une version précédente de son travail
  • Collaborer proprement à plusieurs

Pré-requis

  • Notions de bases sur l’utilisation d’un terminal
  • Avoir déjà contribué de près ou de loin à un projet de développement

Public

  • Développeurs
  • Chefs de projets

Programme

Jour 1

Introduction

  • Gestion de versions centralisée vs distribuée
  • Une modification, 3 états : working directory, staging area, git repository
  • Installation et configuration locale et globale
  • Git en ligne de commande et principales interfaces graphiques : SourceTree, GitKraken...

Git au quotidien

  • Initialisation ou clonage d’un dépôt
  • Création d’une version avec git add et git commit
  • Consulter l’état d’un dépôt avec git log et git status
  • Afficher le contenu d’un commit ou la différences entre 2 versions
  • Mettre de côté avec git stash
  • Ignorer des fichiers

Les branches

  • Quand et pourquoi créer une branche ?
  • Fusionner avec merge : fast-forward, merge commits et squash
  • Réécrire l’historique d’une branche avec rebase et rebase --rebase-merges
  • Gestion des conflits

Collaborer avec les remotes

  • Définir et lister ses remotes
  • Rapattrier des commits avec git fetch et git pull
  • Partager son travail avec git push

Jour 2

Les workflows

  • Workflow centralisé
  • Forks
  • Git flow
  • GitHub Flow
  • GitLab Flow

Maintenir et réécrire son historique

  • Maintenir un historique lisible, conventions de nommage
  • Revenir à une version précédente de son travail temporairement avec git checkout et git restore
  • Annuler des commits avec git reset et git revert
  • Réécrire l’histoire avec git commit --amend, git rebase interactif
  • Le reflog et cherry-pick pour ne jamais perdre un commit

Mise en place de Git

  • Fonctionnement du répertoire .git
  • Automatiser avec les hooks, manuellement et via des bibliothèques
  • Migration depuis SVN
  • Installation d’un serveur via partage réseau, SSH, HTTP et protocole git
  • Gestion des tags
  • Utilisation des sous-modules
  • Comparatif et présentation des plates-formes : GitHub, GitLab, Bitbucket

Moyens pédagogiques et techniques

  • Formateur validé par nos équipes techniques et pédagogiques
  • Salle de formation informatisée
  • Support de cours numérique

Suivi et appréciation des résultats

  • Questions orales ou écrites (QCM)
  • Exercices pratiques
  • Formulaires d'évaluation
Dernière modification le 26/12/2022