Fabrice E Iyolo

Turn coke into code


Apprendre git - Partie 1

Je me suis décidé ce soir d’écrire quelques lignes sur git. Si tu ne sais pas c’est que c’est git et a quoi ça sert, tu es au bon endroit. Au fait, ce tutoriel est fait pour toi. 

 


Qu'est-ce que Git?

Git est un logiciel de contrôle de version facilitant la collaboration entre programmeur dans les projets en groupe. Par collaboration je ne vais pas dire maintenir la dynamique du groupe ou la répartition équitable de la charge de travail du projet etc., mais c’est dans le sens du mécanisme réels de partage du travail à faire. Imaginez qu’un membre de l’équipe efface, par erreur, le code que toute l’équipe a écrit pendant semaine, ou que des heures de travail sont gâchées par un transfert de fichier défectueux, la situation peut devenir fâcheuse très vite.

Tout comme Google Drive permet à plusieurs contributeurs d’écrire, de modifier et d’ajouter au contenu d’un seul fichier texte, git est un programme informatique permettant aux codeurs multiples (et aux gestionnaires de projet, aux testeurs, aux fournisseurs de contenu et à n’importe qui faisant parti de l’équipe) pour collaborer sur un seul projet.

L’apprentissage de git peut être intimidant si vous avez vous-même peu ou pas d’expérience en programmation, mais continuez à le considérer comme un Google Docs amusant, et tout ira bien! Anecdote amusante: git a été inventé par Linus Torvalds - le même gars qui a créé le système d'exploitation open source Linux, qui gère maintenant de vastes pans d'internet, notamment Google et Facebook.

Donc: git est un logiciel que vous installez sur votre ordinateur et qui gère ensuite le contrôle de version pour vous. Qu'est-ce que le contrôle de version?

 


Qu'est-ce que le contrôle de version?


Imaginez que vous avez un tout nouveau projet. Naturellement, vous envisagez de stocker tous les fichiers associés dans un seul et même nouveau répertoire. Au fil du travail, ces fichiers vont changer. Beaucoup. Les choses vont devenir désorganisées, voire en désordre, et même à un moment donné complètement foutu. À ce stade, vous voudriez revenir en arrière dans la version la plus récente de votre projet, qui ne soit pas compliquée, mais qui fonctionne encore - si seulement cela était possible!

Eh bien, grâce à git, ça l'est. Le contrôle de version se produit lorsque vous installez git sur votre ordinateur. Git est conçu pour créer ce nouveau répertoire de projet et pour garder une trace de toutes les modifications que vous apportez à tous les fichiers que vous avez placés dans ce répertoire. Au fur et à mesure que les choses avancent et que vous apportez des ajouts et des modifications, git prend comme une «photo» de la version actuelle. Et c’est ça, chers amis, c'est le contrôle de version: faites une petite modification, prenez une photo, effectuez une autre petite modification, prenez une photo… Et sauvegardez toutes ces photos dans un ordre chronologique. Vous pouvez ensuite utiliser git pour aller et venir dans chaque version du répertoire de votre projet.

Ainsi, lorsque vous vous trompez, git est comme si vous aviez cette capacité magique de remonter dans le temps jusqu'à la dernière bonne version avant que vous n’ayez gaffé. Ainsi, le contrôle de version. git n'est pas le seul système de contrôle de version disponible sur le marché, mais il est probablement le plus largement utilisé. Il est également essentiel d’utiliser GitHub, le site Web public le plus populaire et la plate-forme d’accueil et de partage de projets. Ce n’est pas la même chose que git - c’est un hub pour les projets qui utilisent le contrôle de version de git.

Nous ne discuterons ici que brièvement de GitHub car il est d’abord important de comprendre ce que fait Git. Cependant, utiliser GitHub lui-même est une toute autre courbe d'apprentissage, que nous allons apprendre dans un autre tutoriel.


Comment collaborer avec Git


C’est souvent assez facile à comprendre tous les détails d’un projet en tant que la personne y travaillant seule. Mais envisagez de travailler avec toute une équipe de personnes où vous devez tous partager le même répertoire de projet et modifier les mêmes fichiers. Vous apporterez des modifications à votre partie du projet - tout en travaillant localement sur votre ordinateur - et vos collaborateurs feront de même pour leurs parties du projet sur leurs propres machines. Comment partagez-vous les modifications avec vos collaborateurs et que les modifications apportées apparaissent-elles dans votre propre version de travail locale? Comment vous assurez-vous que quelque chose sur lequel vous travaillez n’est pas en conflit ou ne bloque pas les choses sur lesquelles les autres travaillent?

Git est un système de contrôle de version distribué. Cela signifie que git a des commandes qui vous permettent de "pousser" (push en anglais)  vos modifications vers les machines des autres et "d'extraire" (pull en anglais) leurs modifications des vôtres. Pendant ce temps, GitHub conserve une version principale (appelée master en anglais) – c’une bibliothèque principale de toutes les versions du projet pour empêcher les choses de devenir très désordonnées.

Cela permet également à chacun de push et de pull les modifications d'un repetoire central. Ainsi, au cas où l'un de vos collègues serait malade pendant une semaine, rien ne s'interromprait lorsque vous ne pourrez pas accéder à sa partie du projet car son ordinateur portable est à la maison. Encore une fois, vous en saurez plus à ce sujet la prochaine fois dans «Premiers pas avec GitHub».


Étape 1. Téléchargez git


Allez sur  http://git-scm.com/downloads  et Choisissez le bon pour votre propre système d'exploitation préféré: Mac OS, Linux ou Windows. Il va s'auto-installer. Ne vous inquiétez pas s'il semble comme si  rien ne se passe.


Étape 2. Ouvrez le terminal


Je suis désolé, mais vous devrez simplement utiliser la ligne de commande. Utilisateurs de Linux, vous savez déjà quoi faire. Pour les utilisateurs de Mac, il s’agit du Finder -> Applications -> Utilitaires -> Terminal. Utilisateurs Windows (pourquoi êtes-vous même ici?), Vous allez devoir télécharger et installer un émulateur de terminal.


Étape 3. Dites à Git que vous existez


Il est maintenant temps faire connaissance avec git. Configurez votre nom et votre adresse électronique. Faites ceci en tapant les commandes suivantes, en remplaçant bien sûr les valeurs par votre propre nom et votre email.

git config --global user.name 'Mon_Nom'

git config --global user.email '
 This email address is being protected from spambots. You need JavaScript enabled to view it.
 '

git config --global color.ui 'auto'

 

Cette dernière ligne est optionnelle. Elle indique à git de faire automatiquement toute sortie de commandes git dans le terminal bien codée en couleurs, ce qui est beaucoup plus facile à lire et à comprendre. La raison pour laquelle nous plaçons «–global» devant chacun d’entre eux est d’éviter de taper ces commandes de configuration lors du prochain lancement d’un projet git sur notre système. C’est ainsi que git sait qui vous êtes - pour toujours.


Étape 4. Créez un nouveau répertoire


Il est maintenant temps de vous entraîner à créer un exemple de projet. Configurez vous-même un répertoire vide pour contenir tous vos fichiers de projet glorieux et bientôt existants. Créez le nouveau répertoire avec mkdir. Ensuite ouvrer le répertoire avec la commande cd. Une fois dedans, entrez les mots magiques «git init»:

 «Git init» crée un nouveau répertoire git, généralement appelé «repo». Imaginez-le comme le dossier de votre projet, mais avec les super pouvoirs Git. Un répertoire qui contient tous vos fichiers de projet, ainsi que des éléments supplémentaires, principalement invisibles, générés par git pour suivre et stocker l’historique des révisions de chaque fichier.


Entrez dans le workflow Git

À ce stade, vous avez créé un repertoire sur votre propre ordinateur. Le matériel supplémentaire que git met dedans consiste en trois "arbres" distincts - ne vous inquiétez pas, ils sont entièrement gérés et maintenus par git. Le principal domaine dans lequel vous vous engagez est le répertoire de travail, qui contient vos fichiers de projet réels. Il y a aussi l'Index, une sorte de zone de stockage temporaire pour vos modifications et ajouts les plus récents. Et la tête (head) qui pointe vers la dernière validation - la version sauvegardée la plus récente.

Astuce: chaque fois que vous tapez une commande git dans le terminal, elle doit commencer par «git»: le format est généralement «git fais quelque chose». Cela indique à votre ordinateur que vous souhaitez activer spécifiquement git, par opposition aux autres options qui sont disponibles dans votre terminal.


Étape 5. Ajoutez un fichier «README» et des fichiers de projet.

C'est une excellente idée de commencer par créer un fichier «README» pour expliquer en quoi consiste votre projet, ce qui pourrait se trouver dans, etc. Nous allons utiliser ici une notion de base en ligne de commande, non spécifique à Git: «touch README.md»:

 

Puisque vous connaissez les paramètres de votre projet, vous êtes responsable de l’ajout des fichiers de projet réels. Il suffit de répéter le processus ci-dessus en utilisant les noms de fichier appropriés.


Étape 6. Copiez votre repertoire

Dans cette étape, nous créons une copie de travail de votre répertoire local - votre projet actuel.

Il est crucial de travailler à partir d'une copie, en particulier dans le cadre d’un projet de  groupe! Si votre travail va bien, vous enregistrez tout au fur et à mesure (ce sera notre prochaine étape). En fin de compte, tous les changements / ajouts que vous venez de faire sont rajoutés dans le répertoire d'origine et deviennent la version actuelle du projet. Pendant ce temps, d'autres personnes font la même chose dans leurs propres versions copiées, qui deviennent rapidement différentes de la version copiée.

La beauté de git est qu'il garde trace de tout cela pour vous - qui a changé quoi et où - et l'orchestre tout cela.

Donc, copiez - ou clonez (dans le jargon de git) - votre répertoire en lançant la commande “$ git clone / chemin / vers / ton répertoire:”

Remarquez comment, dans notre répertoire d'origine git-pour-debutants, nous avons maintenant un nouveau répertoire de copie de git-pour-debutants (à côté de notre fichier README). Si on nous dit que nous semblons avoir copié un répertoire vide, c’est parce que nous n’avons pas encore enregistré nos nouveaux ajouts.


Étape 7. Vérifiez le statut


(En passant dans les coulisses, j'ai ajouté un fichier de paramètres de réserve appelé "test1.md" afin que nous ayons quelque chose dans notre repo en plus du readme). Maintenant que nous avons quelques fichiers dans notre dépôt, voyons comment git les traite. Pour vérifier l’état actuel de votre repertoire, tapez “ git status”:

Étape 8. Dites à git d'ajouter vos modifications

« git status » nous a dit que nous avons de nouveaux fichiers qui n'ont pas été officiellement ajoutés au processus de suivi git. Pour dire à git que, oui, s'il vous plaît, soyez le doux concierge de ces fichiers, nous les ajoutons à git. Cela porte à confusion, on appelle cela “staging” quand la commande est en fait “git add (nom du fichier ici)”:

Remarquez comment la couleur du texte est passée du rouge au vert: vous avez rendu git heureux! Une fois que vous avez mis en scène vos fichiers, en utilisant “git add”, vous pouvez les valider dans git.


Étape 9: git commit!

 

Encore une fois, imaginez chaque commit comme une photo d’un instant où vous pouvez, si nécessaire, accéder à votre répertoire dans son état antérieur.

Pour identifier chacun de ces commits, vous devez fournir un message de validation. Ceci est une brève déclaration de ce qui s’est exactement passé entre la dernière version et celle-ci, la plus récente et la celle-ci. Fournissez un message de validation utile, car il vous aide à identifier ce que vous avez modifié dans cette commit. Il s'agit du seul endroit où les utilisateurs peuvent voir non seulement qui a changé, mais également pourquoi. Il est donc utile de réfléchir un peu à chaque message de chaque commit.

Cela dit, votre tout premier message de validation lors de l'établissement d'un nouveau répertoire est toujours «commit initiale» ou (initial commit en anglais). Un message de validation est de la forme «$ git commit –m «  mon message de validation »:

Git identifie chaque commit de façon unique en attachant un long nombre hexadécimal à chaque commit. Dans la capture d'écran, notez que «a4105ea» est notre premier commit. Cela ressemble à la légende sur votre capture. Si nous devions revenir en arrière et accéder à cette version particulière de notre projet, c'est le «nom» que vous utiliseriez pour identifier la version souhaitée.


Étape 10. Il n’y a pas d’étape 10 ! 

Remarquez comment, dans la capture d'écran ci-dessus, après le commit, nous avons créé un «git status». git a renvoyé le charmant message qui peut se traduire par «Rien à commettre, arbre propre» (vous vous souvenez de nos arbres? Sinon, revenez en arrière et relisez la section Git Workflow ci-dessus). Cela signifie que vous êtes à jour. Ce git a capturé et enregistré une capture de votre projet. Bien que ce soit au début, c’est un peu comme une photo de bébé.

Toutefois, au fur et à mesure que votre projet évolue et se développe, vous allez capturer des tonnes de captures pour documenter le parcours. Un conseil: « Commit » très souvent. Donc, vous pouvez littéralement remonter le temps dans votre projet jusqu’à sa naissance et voir dans les plus bref détails chaque modification que vous (ou quelqu’un d’autre) a pu faire sur le projet. Si seulement il y avait une version humaine de git.

La prochaine leçon,  nous prenons notre repo sur la route et apprenons à le mettre sur GitHub pour que les autres joueurs puissent jouer aussi!

A propos

Je suis techniquement fort, expérimenté, pratique et curieux. Je travaille depuis plus de 15 ans dans le domaine de technologies de l'information. Je suis passionné de technologie et de ses applications. J'ai des connaissances et des compétences étendues et approfondies dans les domaines de la cloud computing, des outils, de l'automatisation et de la business intelligence.

Contact