• 12 heures
  • Facile

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 26/08/2019

Découvrez la magie du contrôle de versions

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Dans ce cours, je vais vous présenter la clé à molette de tout bon développeur : le gestionnaire de code source.

Quel développeur n’a jamais été confronté à un de ces problèmes :

Ma modif n’a pas marché et j’ai oublié de sauvegarder une copie de mon code avant de le bidouiller...

Qui a touché à mon fichier ? Il présente un bug maintenant ! 

À quoi servent ces nouveaux fichiers ?

Ne touche surtout pas à ce fichier, je suis en train de le modifier.

Et bien d’autres problèmes, que tout développeur sera susceptible de rencontrer sur son parcours. Si maintenant, je vous disais que vous ne rencontrerez plus jamais ces problèmes grâce au contrôle de versions…. C’est parti ! :soleil:

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

Le nom n’a rien de magique, je vous l’accorde, et pourtant ce petit outil vous deviendra vite indispensable ! Si, si !

Mais déjà, qu’est-ce qu’un contrôleur de versions ?

Contrôleur de versions
Contrôleur de versions

Si vous êtes seul à travailler sur votre projet,  le contrôle de versions vous sera d’une grande aide. Il vous permettra de garder l’historique des modifications de tous vos fichiers. Je vous conseille donc fortement de l’utiliser ! Le contrôle de versions permet de garder en mémoire chaque modification de chaque fichier qui a eu lieu, pourquoi elle a eu lieu et par qui ! Plus besoin de mener son enquête pour connaître les dernières modifications. Le contrôle de versions permet d’assembler les modifications de deux personnes travaillant simultanément sur un même fichier, afin d’éviter d’écraser le travail des autres.

Prenons un exemple simple, imaginez que vous remportiez un projet de création d’un formulaire de recrutement. Youpiii ! :D

Vous avez réussi à créer le formulaire et votre client est super content ! Voyant que son projet a bien avancé, il a l’idée d’ajouter une fonctionnalité d’envoi de mails. Il vous demande donc de le faire au plus vite. Ni une ni deux, vous vous lancez dans le code.

Malheureusement, la modification que vous avez faite a entraîné des régressions et le formulaire ne fonctionne plus. Votre client n’est pas content et souhaite que vous fassiez un retour arrière sur votre code pour que le formulaire fonctionne de nouveau. Avec un contrôle de versions, il n’y a aucun problème. :) Vous remettez la version 1 en production et votre client est satisfait. ;)

Retour à une ancienne version
Retour à une ancienne version

L’utilisation de ces logiciels est donc indispensable pour un développeur digne de ce nom !

Le contrôle des versions est un outil extrêmement utile dans le cadre d'un développement personnel comme dans le cadre d’un projet mutualisé.

Admettons que Henry modifie le fichier X, mais que vous aussi ayez modifié ce fichier ; pas de panique, avec le contrôle de versions, vous pourrez assembler vos modifications. C’est pas magique ?

Dans ce cours, nous allons apprendre à utiliser le contrôleur de versions Git.

Par sa structure décentralisée, Git illustre parfaitement ce qu'est un système de contrôle de versions décentralisé. Plutôt que de consacrer un seul emplacement pour l'historique complet des versions du logiciel, dans Git, chaque copie de travail du code est également un dépôt qui contient l'historique complet de tous les changements.

À la fin de ce cours, vous serez des as de Git (ahahaha vous avez compris ? As de pique/As de Git... OK, je l’admets, ce n’était pas drôle... ). :honte:

As de Git
As de Git

Pourquoi est-ce utile dans le travail d’équipe ?

Prenons un exemple concret !  Alice et Bob travaillent sur un même projet depuis un mois et jusque là tout se passait bien. Hier, leur client leur a demandé de livrer en production leur travail en urgence. Alice a réalisé au plus vite les dernières modifications, a enregistré les fichiers et a envoyé le tout au client.

Le lendemain, le client les appelle, très énervé : rien ne fonctionne comme prévu. Alice et Bob ne comprennent pas, ils avaient séparé les tâches et tous les deux avaient fait correctement le travail. Oui mais Alice, sans le savoir, a écrasé le code qu’avait réalisé Bob lorsqu’elle a fait ses modifications de dernière minute ; et en enregistrant, elle a perdu le travail de Bob. Bob n’ayant pas de copie en local, il a travaillé pendant un mois pour rien, car il lui est impossible de récupérer son travail.

Cela aurait pu être évité avec le gestionnaire de codes sources ! Maintenant, reprenons cet exemple concret avec un gestionnaire de codes sources (Git). Alice et Bob travaillent sur un même projet et ont initialisé Git pour leur projet. Grâce à Git, chacun modifie ses fichiers, et chacun peut envoyer et recevoir les mises à jour des fichiers à n’importe quel moment, et cela sans écraser les modifications de l’autre. Des modifications même en urgence n’auront aucun impact sur le travail de l’autre !

Travail mutualisé d'Alice et Bob
Travail mutualisé d'Alice et Bob

Comment l’utiliser dans des projets open source ?

Un des aspects passionnants lorsque vous faites du développement, c'est que vous pouvez apporter votre pierre à plein d'édifices en contribuant à des projets open source.

Travailler sur un projet open source est passionnant et permet de développer rapidement ses compétences. Que ce soient le codage, la conception de l’interface utilisateur, la conception graphique, la rédaction ou l’organisation, si vous cherchez de la pratique, il y a une tâche pour vous sur un projet open source.

Git ou GitHub ? Quelle est la différence ? 

Prenons un petit exemple. Admettons que nous fassions une préparation pour du parfum. Chez nous, nous allons créer la base du parfum en mélangeant divers ingrédients. Ensuite, nous allons envoyer notre base de parfum à un entrepôt où ils pourront soit le distribuer tel quel, soit le modifier en y ajoutant des ingrédients, des arômes, etc. Eh bien, c'est la même chose que Git et GitHub. Git est la préparation que vous avez réalisée chez vous, et GitHub est l'entrepôt où il peut être modifié par les autres ou distribué. :)

Git et GitHub
Git et GitHub 

Prenons, par exemple, un projet réalisé sous GitHub. La plupart du temps, il faut suivre les étapes suivantes pour collaborer sur un projet open source :

  • le premier réflexe est de regarder la documentation. Il y a souvent tout un tas d’informations sur la manière de collaborer au mieux au projet ;

  • dans un second temps, vous devrez rapatrier le dépôt distant sur votre dépôt local. Sur votre dépôt local, vous pourrez réaliser vos modifications ;

  • une fois toutes les modifications réalisées, vous pourrez envoyer vos modifications en ajoutant des messages de description. Il faut que la personne gérant le dépôt distant comprenne les modifications que vous avez faites. En allant de nouveau sur le dépôt distant, vous pourrez maintenant soumettre vos modifications.  

Passons au chapitre suivant pour en savoir plus sur les dépôts distants !

Exemple de certificat de réussite
Exemple de certificat de réussite