Comprendre Git en 5 minutes!

github mascot

Git est l'outil par excellence que tout développeur doit maîtriser. C'est 36 millions d'utilisateurs et 90% de part de marché. Si t'es pas parfaitement au point sur cette merveille, ça vaut le coup d'investir cinq minutes de ton temps.

Il était une fois

Git est l’outil par excellence que tout développeur doit maîtriser. C’est 36 millions d’utilisateurs et 90% de part de marché. Si t’es pas parfaitement au point sur cette merveille, ça vaut le coup d’investir cinq minutes de ton temps.


Il était une fois

Nous sommes en avril 2005, et le célèbre Linus Torvald est à fond sur son projet de cœur : Linux.

Il y bosse depuis 1991, et tu t’en doutes, le projet est colossal. Il y a une quantité massive de code. Et encore plus de personnes qui bossent dessus.

Pour organiser tout ce bazar, Linus utilisait jusqu’ici un système de gestion de versions nommé BitKeeper. Le souci avec BitKeeper, c’est que c’est un logiciel propriétaire. Ça, déjà, ça agace pas mal de monde dans la communauté open source autour de Linux. En plus, la version gratuite impose des limitations franchement lourdes. Comme si ça ne suffisait pas, du jour au lendemain, la version gratuite de BitKeeper est retirée.

Là, Linus Torvalds pète un câble et décide de coder lui-même un nouveau système de versionnage. Le développement FULGURANT de Git allait bientôt démarrer. Le 3 avril 2005, Linus se lance dans la création de Git. Le 6 avril 2005, il envoie un mail bien remonté pour annoncer qu’il bosse sur une alternative. Le 18 avril 2005, les premiers merges de branches sont opérationnels ! Le 29 avril 2005, Git commence à être utilisé dans certaines parties de Linux. Et le 16 juin 2005, Git gérait toute la version 2.6.12 de Linux.

Il y bosse depuis 1991, et tu t'en doutes, le projet est colossal. Il y a une quantité massive de code. Et encore plus de personnes qui bossent dessus.

Git history

Peu de temps après, Linus décida de filer les clefs à Junio Hamano qui en fit une version 1.0 déployée le 21 décembre 2005. Aujourd’hui, Git est absolument partout.

À quoi sert Git ?

Git est un système de contrôle de version open source. Concrètement, c’est un outil qui te permet de traquer tous les fichiers de ton projet. Chaque modification de fichier est alors détectée par Git et versionnée dans une version instantanée. Un historique de modification va être disponible sur ton projet. Tu vas pouvoir le consulter et pourquoi pas même revenir en arrière dans le temps !

Versioning

Chaque modification est versionnée dans une version instantanée

Historique

Consultez l'historique complet des modifications

Collaboration

Travaillez en équipe sans conflit

Git timeline

Git est un outil qui va te permettre de savoir qui a touché à quel fichier, quand et comment. Imagine, t’as 2000 fichiers et 5 développeurs qui travaillent en équipe dessus.

  • Comment tu sais qui a fait quoi et quand ? Le versioning de Git va te permettre de le savoir.
  • Comment t’es sûr que les développeurs ne se gênent pas en touchant les mêmes fichiers en même temps ? Encore une fois, Git à la rescousse avec son système de branches.

Chaque développeur va pouvoir travailler en parallèle avec leur propre copie du projet sur une branche personnelle. Une fois leur travail fini, les copies de travail seront fusionnées !
En plus de ça, contrairement à certains de ces concurrents, Git est décentralisé. Ça veut dire que l’historique des fichiers est présent dans chacune des machines où se trouve le projet. Ce qui diffère d’une architecture centralisée où tu peux pas faire grand-chose sans un seul serveur qui gère tout.

Bon, c’est peut-être pas encore tout à fait clair, regardons comment ça marche !

Comment ça marche ?

D'abord, il faut installer Git sur ta machine. Ensuite, tu vas pouvoir initialiser un dépôt Git dans ton projet. C’est ce qu’on appelle un « repository ». C’est là que Git va stocker toutes les versions de ton projet.

Pour se faire, rien de plus simple:

git init

La première chose à comprendre avec le fonctionnement de Git c’est qu’il fait des instantanés (snapshots en anglais) de ton projet pour le versionner. Là où les autres systèmes de versioning comme Subversion et Perforce vont faire des diffs sur chaque fichier. Cette différence est importante. Elle va permettre à Git de se distinguer côté performance et travail de développeur en parallèle via les branches !

Secondes choses à bien comprendre avec Git : les zones de travail. Il y a plusieurs zones où les fichiers de ton projet vont "vivre" dans Git. C’est super important de comprendre cette partie pour ne pas être perdu.

On trouve trois zones bien distinctes en local sur ton poste de travail.

Jusqu'ici, on est resté sur ton poste de travail. Une fois que tu as versionné comme tu le voulais, tu pourras partager ton travail en le poussant vers le dépôt distant avec un « git push ». Avant de t'expliquer tous ces trucs, petit schéma !

Zones de travail Git

Working Directory

Zone de travail où vivent vos fichiers

Staging Area

Zone de transit pour les fichiers à commiter

Local Repository

Dépôt local où sont stockées les versions

Git workflow schema

Les commandes essentielles

git init

Initialise un nouveau dépôt Git

git add .

Ajoute tous les fichiers à la zone de transit

git commit -m "message"

Crée une nouvelle version avec un message

git push

Envoie les modifications vers le dépôt distant

git pull

Récupère les modifications du dépôt distant et les fusionne dans la branche locale.

Ce sont quelques commandes que tu vas utiliser tout le temps et c’est le flow que tu vas avoir en permanence. Maintenant, tu vas forcément bosser avec d’autres développeurs. Pour bien gérer ça, il va falloir que tu utilises les branches.

Voyons les commandes

Pour installer Git, tu trouveras ton bonheur ici. Pour la petite démo, on va imaginer un scénario. Ça va pas être dur à imaginer : c’est ce qui va t’arriver en permanence.

  1. Mettre à jour la branche principale
  2. Faire une branche pour travailler dans ton coin
  3. Faire plusieurs commits
  4. Réduire ces commits en un seul commit
  5. Push tes changements sur le dépôt remote

Je pars du principe que tu as déjà un dépôt Git en local que tu as cloné d’un dépôt distant via la commande git clone .
Commençons par mettre à jour la branche principale: master

On utilise la commande git pull pour mettre à jour notre dépôt local avec les updates du dépôt distant. Ensuite, on crée une branche.

Grâce à la commande git checkout -b on va créer une branche (une copie de la branche principale) et se placer dessus automatiquement.
J’utilise le nom "ma-nouvelle-branche" ici. Quand tu bosses avec Git il est également conseillé de commit fréquemment. C’est ce qu’on va faire ici.


La commande git status te permet de vérifier l'état de ton dépôt Git en local, en affichant les modifications en cours, les fichiers en attente de commit, et si ta branche est synchronisée avec le répo distant (remote).

Et voila, tu as les bases pour utiliser Git partout!

Workflow Git

1

Mettre à jour

Commencez par mettre à jour votre branche principale

git pull origin main
2

Créer une branche

Créez une nouvelle branche pour vos modifications

git checkout -b ma-feature
3

Commiter

Faites vos modifications et créez des commits

git add .
                            git commit -m "feat: nouvelle fonctionnalité"
4

Pousser

Envoyez vos modifications vers le dépôt distant

git push origin ma-feature

Téléchargez le récapitulatif

Obtenez gratuitement le PDF avec toutes les commandes essentielles de Git

Télécharger le PDF