Contactez-nous

Git

Formation Git

Git est un logiciel de gestion de versions (VCS) open-source permettant de sauvegarder incrémentalement des fichiers, en particulier du code source. Git a été créé en 2005 par Linus Torvalds pour remplacer une solution propriétaire qui gérait le code source du noyau Linux. Cet outil a la particularité sur ses concurrents plus anciens (Subversion/SVN, CVS) d’être distribué, c’est à dire qu’il n’y a pas besoin d’avoir accès à un serveur central pour créer une version ce qui lui confère de nombreux avantages. Dans cette formation, nous verrons le premier jour les commandes de tous les jours (git add, git commit, git log, git status…) puis les commandes qui permettre de reprendre une version précédente de son travail ou de modifier l’historique. La seconde journée sera consacrée aux branches, nous verrons les différentes possibilités en terme de fusion de 2 branches, ainsi que les workflows possibles comme git-flow. Enfin nous verrons comment collaborer à des projets communs via une plate-forme comme Github, GitLab ou Bitbucket.

Objectifs pédagogiques / Compétences visées

  • Maitriser les commandes git du quotidien
  • Pouvoir revenir à une version précédente de son travail
  • Comprendre les différentes alternatives lors de la fusion de 2 branches
  • Être capable de collaborer à un projet en équipe

Pré-requis

  • Notions de bases sur l’utilisation d’un terminal DOS/UNIX
  • Avoir déjà contribué de prêt 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
    • Git en ligne de commande et principaux outils 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
  • L’historique Git
    • Maintenir un historique lisible, conventions
    • Revenir à une version précédente de son travail temporairement avec git checkout
    • 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

Jour 2

  • Les branches
    • Quand et pourquoi créer une branche ?
    • Fusionner avec merge : fast-forward, recursive et squash
    • Réécrire l’historique d’une branche avec rebase et rebase --preserve-merges
    • Gérer les conflits sereinement
  • 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
    • Branches master, develop, de features, git-flow
    • Collaborer avec les forks
  • Mise en place de Git
    • 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