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_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 | Version Parente |
---|---|---|
toto.txt |
A | ∅ |
toto.txt |
B | A |
toto.txt |
C | B |
toto.txt |
Z | A |
Git va nous permettre de gérer les versions automatiquement.
A la base, c’est vrai que git est plutôt orienté pour le développement logiciel et pour les développeurs.
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 :