Gérez vos codes source avec Git

Formation

À Paris

Prix sur demande

Appeler le centre

Avez-vous besoin d'un coach de formation?

Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.

Description

  • Typologie

    Formation

  • Lieu

    Paris

Nous vous proposons des cours ouverts pour se former autrement, pour devenir acteur de votre vie. Nous vous aidons à prendre votre envol, mais ça ne s'arrête pas là. Notre volonté est de vous accompagner tout au long de votre vie, dans votre parcours professionnel.Grâce à cette formation vous pourrez acquérir les connaissances nécessaires qui vous permettrons d’ajouter des compétences à votre profil et obtenir de solides aptitude qui vous offriront de nombreuses opportunités professionnelles.

Les sites et dates disponibles

Lieu

Date de début

Paris ((75) Paris)
Voir plan
7 Cité Paradis, 75010

Date de début

Consulter

Questions / Réponses

Ajoutez votre question

Nos conseillers et autres utilisateurs pourront vous répondre

À qui souhaitez-vous addresser votre question?

Saisissez vos coordonnées pour recevoir une réponse

Nous ne publierons que votre nom et votre question

Les Avis

Le programme

Introduction du cours

Si vous avez déjà travaillé sur un projet informatique, que ce soit un petit projet personnel ou un plus gros projet professionnel, vous avez certainement déjà rencontré un de ces problèmes :

  • « Qui a modifié le fichier X, il marchait bien avant et maintenant il provoque des bugs ! » ;

  • « Robert, tu peux m’aider en travaillant sur le fichier X pendant que je travaille sur le fichier Y ? Attention à ne pas toucher au fichier Y car si on travaille dessus en même temps je risque d’écraser tes modifications ! » ;

  • « Qui a ajouté cette ligne de code dans ce fichier ? Elle ne sert à rien ! » ;

  • « À quoi servent ces nouveaux fichiers et qui les a ajoutés au code du projet ? » ;

  • « Quelles modifications avions-nous faites pour résoudre le bug de la page qui se ferme toute seule ? »

Si ces problèmes-là vous parlent, vous auriez dû utiliser un logiciel de gestion de versions. Ce type de logiciel est devenu indispensable lorsqu’on travaille à plusieurs sur un même projet et donc sur le même code source. Même si vous travaillez seuls, vous aurez intérêt à commencer à en utiliser un rapidement car il vous offrira de nombreux avantages, comme la conservation d’un historique de chaque modification des fichiers par exemple.

Il existe de nombreux logiciels de gestion de versions, comme SVN (Subversion), Mercurial et Git. Dans ce tutoriel, je vous présenterai Git (prononcez « guite ») qui est un des plus puissants logiciels de ce genre. Nous l’utilisons notamment pour gérer le code source du Site du Zéro !

Qu'est-ce qu’un logiciel de gestion de versions ?

Les logiciels de gestion de versions sont utilisés principalement par les développeurs ; ce sont donc bel et bien des outils pour geeks. En effet, ils sont quasi exclusivement utilisés pour gérer des codes sources, car ils sont capables de suivre l’évolution d’un fichier texte ligne de code par ligne de code. ;)
Ces logiciels sont fortement conseillés pour gérer un projet informatique.

Un projet informatique correspond aux étapes de création d’un programme, d’un site web ou de tout autre outil informatique. Que vous travailliez seuls sur le développement de ce projet ou à plusieurs, vous avez un objectif (par exemple, « créer un site web ») et vous allez devoir écrire du code source pour parvenir à cet objectif. On dit que vous travaillez sur un projet.

Ces outils suivent l’évolution de vos fichiers source et gardent les anciennes versions de chacun d’eux.

S’ils s’arrêtaient à cela, ce ne seraient que de vulgaires outils de backup (sauvegarde). Cependant, ils proposent de nombreuses fonctionnalités qui vont vraiment vous être utiles tout au long de l’évolution de votre projet informatique :

  • ils retiennent qui a effectué chaque modification de chaque fichier et pourquoi. Ils sont par conséquent capables de dire qui a écrit chaque ligne de code de chaque fichier et dans quel but ;

  • si deux personnes travaillent simultanément sur un même fichier, ils sont capables d’assembler (de fusionner) leurs modifications et d’éviter que le travail d’une de ces personnes ne soit écrasé.

Ces logiciels ont donc par conséquent deux utilités principales :

  • suivre l’évolution d’un code source, pour retenir les modifications effectuées sur chaque fichier et être ainsi capable de revenir en arrière en cas de problème ;

  • travailler à plusieurs, sans risquer de se marcher sur les pieds. Si deux personnes modifient un même fichier en même temps, leurs modifications doivent pouvoir être fusionnées sans perte d’information.

Logiciels centralisés et distribués

Il existe deux types principaux de logiciels de gestion de versions.

  • Les logiciels centralisés : un serveur conserve les anciennes versions des fichiers et les développeurs s’y connectent pour prendre connaissance des fichiers qui ont été modifiés par d’autres personnes et pour y envoyer leurs modifications.

  • Les logiciels distribués : il n’y a pas de serveur, chacun possède l’historique de l’évolution de chacun des fichiers. Les développeurs se transmettent directement entre eux les modifications, à la façon du peer-to-peer.

Voici, schématiquement, comment fonctionne un logiciel de gestion de versions centralisé :

Un logiciel de gestion de versions centralisé.
Le serveur retient les anciennes versions des fichiers et communique les changements aux développeurs.

De même, voici le fonctionnement d’un logiciel de gestion de versions distribué :

Un logiciel de gestion de versions distribué.
Il n’y a pas de serveur. Les développeurs conservent l’historique des modifications et se transmettent les nouveautés.

Dans la pratique, les logiciels distribués sont rarement utilisés comme sur le schéma précédent. Même lorsque les logiciels sont capables de fonctionner en mode distribué, on utilise très souvent un serveur qui sert de point de rencontre entre les développeurs. Le serveur connaît l’historique des modifications et permet l’échange d’informations entre les développeurs, qui eux possèdent également l’historique des modifications.

Un logiciel de gestion de versions distribué avec un serveur.
Le serveur sert de point de rencontre entre les développeurs et possède lui aussi l’historique des versions.

C’est dans ce dernier mode que nous allons fonctionner avec Git. :)
Il a l’avantage d’être à la fois flexible et pratique. Pas besoin de faire de sauvegarde du serveur étant donné que tout le monde possède l’historique des fichiers, et le serveur simplifie la transmission des modifications.

Git et les autres logiciels de gestion de versionsLes différents logiciels de gestion de versions

Dans ce tutoriel, je vais vous présenter Git, le logiciel de gestion de versions que nous utilisons pour gérer le code source du Site du Zéro.
Néanmoins, il existe d’autres logiciels du même type que je tiens aussi à vous présenter rapidement afin que vous les connaissiez au moins de nom.

Outil

Type

Description

Projets qui l’utilisent

CVS

Centralisé

C’est un des plus anciens logiciels de gestion de versions. Bien qu’il fonctionne et soit encore utilisé pour certains projets, il est préférable d’utiliser SVN (souvent présenté comme son successeur) qui corrige un certain nombre de ses défauts, comme son incapacité à suivre les fichiers renommés par exemple.

OpenBSD…

SVN (Subversion)

Centralisé

Probablement l’outil le plus utilisé à l’heure actuelle. Il est assez simple d’utilisation, bien qu’il nécessite comme tous les outils du même type un certain temps d’adaptation. Il a l’avantage d’être bien intégré à Windows avec le programme Tortoise SVN, là où beaucoup d’autres logiciels s’utilisent surtout en ligne de commande dans la console.
Il y a un tutoriel SVN sur le Site du Zéro.

Apache, Redmine, Struts…

Mercurial

Distribué

Plus récent, il est complet et puissant. Il est apparu quelques jours après le début du développement de Git et est d’ailleurs comparable à ce dernier sur bien des aspects.
Vous trouverez un tutoriel sur Mercurial sur le Site du Zéro.

Mozilla, Python, OpenOffice.org…

Bazaar

Distribué

Un autre outil, complet et récent, comme Mercurial. Il est sponsorisé par Canonical, l’entreprise qui édite Ubuntu. Il se focalise sur la facilité d’utilisation et la flexibilité.

Ubuntu, MySQL, Inkscape…

Git

Distribué

Très puissant et récent, il a été créé par Linus Torvalds, qui est entre autres l’homme à l’origine de Linux. Il se distingue par sa rapidité et sa gestion des branches qui permettent de développer en parallèle de nouvelles fonctionnalités.

Kernel de Linux, Debian, VLC, Android, Gnome, Qt…

Notez qu’il existe d’autres outils de gestion de versions ; je ne vous ai présenté ici que les principaux.
Tous ceux de cette liste sont des logiciels libres, mais il existe aussi des logiciels propriétaires : Perforce, BitKeeper, Visual SourceSafe de Microsoft, etc.

Quelles sont les particularités de Git ?

Je n’entrerai pas dans les détails de la comparaison de Git avec les autres outils concurrents comme SVN et Mercurial. Retenez simplement que :

  • CVS est le plus ancien et il est recommandé de ne plus l’utiliser car il est le moins puissant et n’est plus très bien mis à jour ;

  • SVN est le plus connu et le plus utilisé à l’heure actuelle, mais de nombreux projets commencent à passer à des outils plus récents ;

  • Mercurial, Bazaar et Git se valent globalement, ils sont récents et puissants, chacun a des avantages et des défauts. Ils sont tous distribués, donc chaque développeur possède l’historique des modifications et ils permettent en théorie de se passer de serveur (bien qu’on utilise toujours un serveur pour des raisons pratiques).

Concernant les avantages de Git sur les autres, certains ont fait des listes comparatives intéressantes (bien que toujours criticables).

On retiendra surtout que Git :

  • est très rapide ;

  • sait travailler par branches (versions parallèles d’un même projet) de façon très flexible ;

  • est assez complexe, il faut un certain temps d’adaptation pour bien le comprendre et le manipuler, mais c’est également valable pour les autres outils ;

  • est à l’origine prévu pour Linux. Il existe des versions pour Windows mais pas vraiment d’interface graphique simplifiée. Il est donc à réserver aux développeurs ayant un minimum d’expérience et… travaillant de préférence sous Linux.

Une des particularités de Git, c’est l’existence de sites web collaboratifs basés sur Git comme GitHub. GitHub, par exemple, est très connu et utilisé par de nombreux projets : jQuery, Symfony, Ruby on Rails…
C’est une sorte de réseau social pour développeurs : vous pouvez regarder tous les projets évoluer et décider de participer à l’un d’entre eux si cela vous intéresse. Vous pouvez aussi y créer votre propre projet : c’est gratuit pour les projets open source et il existe une version payante pour ceux qui l’utilisent pour des projets propriétaires.

GitHub fournit le serveur où les développeurs qui utilisent Git se rencontrent. C’est un excellent moyen de participer à des projets open source et de publier votre projet !

Installer et configurer GitInstallation

Nous allons voir ici comment installer Git sous Linux, Windows et Mac OS X. Comme je vous le disais plus tôt, Git est plus agréable à utiliser sous Linux et sensiblement plus rapide, mais il reste néanmoins utilisable sous Windows.

Installer Git sous Linux

Avec un gestionnaire de paquets, c’est très simple :

sudo apt-get install git-core gitk

Cela installe 2 paquets :

  • git-core : c’est git, tout simplement. C’est le seul paquet vraiment indispensable ;

  • gitk : une interface graphique qui aide à mieux visualiser les logs. Facultatif.

Il est recommandé de se créer une paire de clés pour se connecter au serveur de rencontre lorsque l’accès à Git se fait via SSH. Un tutoriel du SdZ explique comment créer des clés : http://www.siteduzero.com/tutoriel-3-7 [...] tml#ss_part_5.

Installer Git sous Windows

Pour utiliser Git sous Windows, il faut installer msysgit : http://msysgit.github.io.

Cela installe msys (un système d’émulation des commandes Unix sous Windows) et Git simultanément.

Comme vous le voyez, ce n’est pas une « vraie » version pour Windows mais plutôt une forme d’émulation. Je l’ai testé, cela fonctionne, mais c’est loin d’être aussi agréable et rapide que sous Linux. Si la majorité des développeurs de votre projet utilisent Windows, je vous recommanderai donc plutôt d’essayer Mercurial ou Bazaar qui, sous Windows, ont des interfaces graphiques plus adaptées.

Lors de l’installation, laissez toutes les options par défaut, elles conviennent bien.

Une fois que c’est installé, vous pouvez lancer une console qui permet d’utiliser Git en ouvrant le programme Git Bash. Les commandes de base d’Unix fonctionnent sans problème : cd, pwd, mkdir, etc.

De la même façon que sous Linux, pour se connecter régulièrement à un serveur, il est recommandé de se créer une paire de clés avec Puttygen et de charger la clé en mémoire avec Pageant (normalement installé avec Putty). Toutes les explications sont dans le tutoriel du SdZ : http://www.siteduzero.com/tutoriel-3-7 [...] tml#ss_part_5.

Installer Git sous Mac OS X

Il y a plusieurs façons d’installer Git sous Mac OS X. Le plus simple est de se baser sur cet installeur pour Mac OS X.

Vous allez télécharger une archive .dmg. Il suffit de l’ouvrir pour la monter, ce qui vous donnera accès à plusieurs fichiers :

...

Appeler le centre

Avez-vous besoin d'un coach de formation?

Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.

Gérez vos codes source avec Git

Prix sur demande