Comment j’aurais aimé qu’on m’explique Git
Commencez par ici la formation Git ! On voit rapidement à quoi ça sert et pourquoi cet outil est si utilisé dans le monde du développement.
J’ai décomposé la formation en 5 parties arbitraires, totalement inégales et sujettes à évolution :
Ce tutoriel a été écrit dans le cadre de mon travail, j’en profite pour le faire partager à tous. Il peut servir de support pour former des collègues ou des élèves. Il y a surement plein de coquilles ou de choses imprécises, n’hésitez pas à me les faire remarquer.
J’espère qu’il vous plaira :)
Présentation
Git est un logiciel de gestion de versions décentralisé. C’est un logiciel libre et gratuit, créé en 2005 par Linus Torvalds, auteur du noyau Linux.
Définitions :
- gestionnaire de versions : outil permettant de versionner un ensemble de dossiers et fichiers.
- décentralisé : s’oppose à centralisé, c’est à dire à un répertoire central stockant toutes les versions. Ici chaque développeur possède le répertoire qui contient l’intégralité de l’historique et des versions du projet.
- Linus Torvalds : un chic type
Il répond notamment aux besoins suivants :
- ne pas perdre les fichiers
- pouvoir revenir en arrière
- travailler en équipe
- partager le projet et intégrer des personnes que l’on ne connaît pas
- héberger un projet à l’extérieur de son ordinateur
Git est un outil qui permet de travailler collaborativement et parallèlement sur le même projet.
Ecosystème
- Git est au coeur d’un écosystème très important pour le développement. Gitlab et Github, deux produits concurrents qui permettent d’héberger des projets basés sur Git.
- Git est intégré à la plupart des IDE (VSCode, PyCharm, Intellij, RStudio, Eclipse etc.)
- Git permet le DevOps, c’est à dire l’automatisation des chaînes de livraison de nouvelles versions.
Pourquoi utiliser un gestionnaire de version ?
Avant :
toto.txt
toto_v0.txt
toto_v1.txt
toto_v1_judith.txt
toto_v1_jj_20230412.txt
toto_v1_jj_20230412_final.txt
toto_v1_jj_20230412_final0.txt
toto_v1_jj_20230412_final0_final.txt
Après :
Document | Version (itération) | Version Parente |
---|---|---|
toto.txt |
A (0) - initialisation | ∅ (aucune) |
toto.txt |
B (1) | A |
toto.txt |
C (2) | B |
toto.txt |
M (1) | A |
Git va nous permettre de gérer les versions automatiquement. Comme on le voit ci-dessus, on passe d’une logique dans laquelle à chaque version on renomme le document surtout s’il est nécessaire de l’échanger avec des partenaires, à une organisation avec un nom de fichier unique et un système qui va permettre de retenir les différentes versions associées à un ou plusieurs documents ainsi que la parenté donc la généalogie.
Git est plutôt orienté pour le développement logiciel et le maintien de versions de code initialement cependant, on peut très bien l’utiliser pour d’autres usages :
- gérer des version de documents, de documentations
- versionner des configurations
- versionner des notes personnelles (j’utilise Obsidian+git par exemple pour la prise de note et la sauvegarde, voir également LogSeq)
Vous pourrez également utiliser tout l’écosystème qui tourne autour de Git.
Installation
Voir ici : Démarrage rapide - Installation de Git
Configuration
git config
Afin de configurer Git pour se connecter au GitLab de manière sécurisée, exécuter les commandes suivantes.
# définition de username : nom ou nom prénom ou login intranet par exemple
git config --global user.name <username>
# définition de votre email : email pour travailler sur le gitlab
git config --global user.email <email>
# definition du login de connexion pour le gitlab
git config --global credential.https://gitlab.com.username <login_extranet>
# réinitialisation du cache toutes les 8h (permet de renseigner son mot de passe une seule fois / jour)
git config --global credential.https://gitlab.com.helper "cache --timeout=30000"
# Exemple
git config --global user.name "Léo Le Lonquer"
git config --global user.email leo.le.lonquer@bidulon.fr
git config --global credential.https://gitlab.com.username LeoLeLonquer
La suite
Ok c’est un peu frustrant on a encore rien fait !
La suite dans le prochain épisode par ici : Git - 1 - Concepts de base
Ressources
- Cours de Pierre Giraud : Apprendre à utiliser Git et GitHub - Cours Complet (2020)
- Série de vidéos très accessibles de l’Inria (10mins chaque) - Démystifions Git, Github, Gitlab :