Git - 0 - Introduction

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 :

  1. Intro
  2. Concepts de base
  3. Actions fréquentes
  4. Gitlab - Repo distant
  5. Bons à savoir

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 :

  1. ne pas perdre les fichiers
  2. pouvoir revenir en arrière
  3. travailler en équipe
  4. partager le projet et intégrer des personnes que l’on ne connaît pas
  5. 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 :

  1. toto.txt
  2. toto_v0.txt
  3. toto_v1.txt
  4. toto_v1_judith.txt
  5. toto_v1_jj_20230412.txt
  6. toto_v1_jj_20230412_final.txt
  7. toto_v1_jj_20230412_final0.txt
  8. 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