1. Livres & vidéos
  2. Git
  3. Avant-propos
Extrait - Git Maîtrisez la gestion de vos versions (concepts, utilisation et cas pratiques) (5e édition)
Extraits du livre
Git Maîtrisez la gestion de vos versions (concepts, utilisation et cas pratiques) (5e édition) Revenir à la page d'achat du livre

Avant-propos

À qui s’adresse cet ouvrage ?

Cet ouvrage s’adresse principalement aux développeurs et aux chefs de projet. Dans une moindre mesure, il s’adresse également aux professionnels (graphistes, webdesigners, etc.) amenés à travailler avec des développeurs et à modifier des codes sources.

Au terme de cette lecture, les chefs de projet auront les connaissances nécessaires pour mettre en place un serveur GitLab et former leurs équipes à l’utilisation et aux bonnes pratiques de Git. Les développeurs seront en mesure d’apprendre les concepts de Git et son utilisation quotidienne pour s’intégrer dans une équipe de développement. Les professionnels (webdesigners, etc.) amenés à travailler avec Git pourront intégrer leurs modifications aux projets de développement.

Objectifs de l’ouvrage

Il n’existe pas de statistiques officielles sur l’utilisation des systèmes de gestion de versions, mais des enquêtes comme celle de l’équipe d’Eclipse permettent d’avoir un aperçu de la popularité des différents systèmes (source : https://dzone.com/articles/eclipse-community-survey-2014). Selon cette étude, Git est devenu le système de gestion de versions le plus populaire en 2014.

À partir de ce constat, il est rare qu’un développeur ne soit pas amené au moins une fois à travailler sur un dépôt Git. L’objectif principal de cet ouvrage est de former le lecteur aux concepts et à l’utilisation de Git pour qu’il puisse rapidement être opérationnel dans une équipe qui l’utilise. Ce livre a également pour objectifs :

  • de permettre aux personnes pressées d’apprendre à utiliser Git via un parcours accéléré (mode de lecture rapide) ;

  • de fournir au lecteur des bonnes pratiques dans l’utilisation d’un dépôt ;

  • de ne pas uniquement expliquer l’utilité des commandes de Git, mais de montrer par des cas pratiques comment ces actions s’enchaînent dans le travail quotidien du développeur ;

  • de décrire au lecteur la démarche pour commencer...

Prérequis

La lecture de ce livre ne nécessite aucune connaissance des systèmes de gestion de versions ou de développement, bien qu’une expérience de ces systèmes puisse faciliter la compréhension de certains concepts.

Tous les exemples de ce livre utilisent l’interface en ligne de commande, le lecteur devra donc être habitué à celle-ci pour suivre ces exemples.

Progression

Ce livre a été écrit pour être lu de deux manières différentes. En effet, tous les lecteurs d’un livre sur une technologie comme Git n’ont pas les mêmes attentes.

Une partie des lecteurs souhaitera apprendre Git en profondeur et connaître ses mécanismes internes pour avoir une bonne compréhension de Git. Ces lecteurs pourront lire le livre de façon linéaire du début à la fin.

Une autre partie ne souhaitera pas approfondir les mécanismes de Git et souhaitera être rapidement opérationnelle sur un dépôt Git. Ces lecteurs pourront alors lire le chapitre Installation de Git, puis les deux chapitres Scénario de développeur indépendant et Scénario d’équipe. Ils pourront éventuellement approfondir les points qu’ils souhaitent en consultant les chapitres correspondants ou en se référant à l’aide-mémoire présent en annexe.

Détail des chapitres

Le chapitre Git et la gestion de versions présente les différents types de systèmes de gestion de versions qui ont existé. Il se penche également sur le fonctionnement et sur les intérêts des systèmes de gestion de versions.

Le chapitre Installation de Git explique l’installation de Git sur les trois systèmes d’exploitation principaux.

Le chapitre Création d’un dépôt détaille la manière de créer un dépôt (conteneur du code source d’un projet). Il explique également comment configurer le dépôt.

Le chapitre Manipulation des fichiers et commit présente les différentes façons de manipuler les fichiers à l’intérieur d’un dépôt. Le lecteur apprendra comment enregistrer ses modifications dans le dépôt.

Le chapitre Consultation et manipulation de l’historique explique comment se servir du dépôt comme d’un véritable journal de bord du projet. Le lecteur apprendra à retrouver les modifications ayant eu lieu et à les manipuler. C’est au cours de ce chapitre que Git n’apparaîtra plus à l’utilisateur comme une contrainte, mais comme une opportunité de mieux maîtriser son projet.

Le chapitre Les branches et les tags présente le fonctionnement des branches. Les branches représentent de nouveaux développements et permettent de séparer facilement différents développements en cours (production, développement, préproduction, etc.).

Le chapitre Partager un dépôt explique comment partager un dépôt avec d’autres collaborateurs pour facilement partager les développements entre développeurs. 

Le chapitre Git-Flow : workflow d’entreprise présente un système de gestion des branches : Git-Flow. Ce système, normalisé, permet de rationaliser la gestion des branches et de mutualiser un certain nombre de bonnes pratiques.

Le chapitre Les outils de Git explique brièvement le fonctionnement de plusieurs outils internes à Git. Le lecteur apprendra à gérer des bibliothèques dans son projet ou encore à retrouver le moment exact où une régression a été ajoutée au projet.

Le chapitre Scénario de développeur...

Un point sur les langues

Dans ce livre, nous avons fait le choix d’utiliser certains termes anglophones francisés plutôt que leur traduction. Par exemple, nous utilisons le terme « merger » alors que nous pourrions utiliser sa traduction française : « fusionner ». Il en est de même pour certains mots comme « commiter » et d’autres.

Nous avons fait ce choix car, en entreprise, beaucoup de ces termes francisés sont utilisés. Prenons un exemple. Il est plus efficace de demander « As-tu commité ? » plutôt que « As-tu sauvegardé avec la commande git commit ? »

Par ailleurs, le terme « commit » pourrait se traduire par « enregistrer », « garder en mémoire » ou encore « consigner ». En utilisant le terme anglophone, on est sûr d’employer un terme standard reconnu par tous les développeurs.

Nous aurions pu utiliser des traductions littérales des termes :

« As-tu consigné ? »

Mais cette façon de parler n’est pas du tout utilisée par les développeurs. De plus, pour obtenir de l’aide sur les commits, il vaut mieux faire une recherche avec les mots git commit qu’avec les mots git consignation.

Remerciements

Je tiens à remercier en tout premier lieu ma femme Noëllie Dauzon qui m’a aidé dans l’élaboration de ce livre (notamment en dessinant la quasi-totalité des schémas). Elle a également su me supporter pendant la rédaction et ses quelques phases de stress. Je remercie mes enfants, Raphaël, Élie et Émilie, d’avoir été adorables et motivants pendant ce travail d’écriture.

Je remercie mes parents et ma famille pour leur soutien indéfectible et leurs encouragements pendant l’écriture de cet ouvrage.

Je remercie également mes amis pour avoir supporté mes discussions Git-centriques et pour m’avoir inspiré les noms du dernier chapitre de ce livre.

Je tiens à remercier Huwise, et plus particulièrement mes collègues développeurs, qui me permettent d’aller toujours un peu plus loin dans mon utilisation de Git et ainsi de continuer à enrichir mon savoir-faire.

Je remercie les Éditions ENI de m’avoir permis d’écrire ce livre et tous ses collaborateurs qui m’ont accompagné lors des étapes de sa réalisation.

Je vous remercie également vous, lecteur de ce livre, et j’espère que cet ouvrage vous aidera à vous former à Git et à ses concepts ou à perfectionner vos connaissances.

Introduction à Git

Lorsqu’on parle de système de gestion de versions, l’approche du néophyte revient à le considérer comme un système de sauvegarde incrémentiel. Aux yeux du néophyte, grâce à un système de gestion de versions, les développeurs peuvent retrouver toutes leurs anciennes versions.

Mais Git ne permet pas uniquement cela, il offre de nombreuses autres possibilités. 

Git permet de paralléliser plusieurs versions du même logiciel, par exemple lorsqu’un développeur travaille sur une nouvelle fonctionnalité, mais que celle-ci ne doit pas encore être intégrée au logiciel final.

Git sert également de documentation complète. Chaque nouvelle modification de code est accompagnée d’un message. Au bout de plusieurs années, ces messages peuvent se compter en milliers et devenir des documentations très intéressantes indiquant le contexte dans lequel les modifications ont été effectuées. 

Les systèmes de gestion de versions peuvent paraître contraignants au début, mais se révèlent indispensables lorsque le développeur y a pris goût.