N’est-t-il pas vrai que l’union fait la force ? Et qu’une main lave l’autre main, et les deux lavent le visage ? Bref, dans n’importe quel projet, travailler en équipe booste généralement le travail. Mais…. dans certains domaine peut-être, oui dans la charpenterie, menuiserie, ou dans un chantier où certaines transporte les blocs, construisent…

Et dans la programmation, il y a t-il vraiment des manières efficaces pour mieux travailler ensemble, en équipe ? Là je pense directement à comment Junior peut coder un seul fichier html en même temps qu’Alex sans que les modifications de l’un écrase celle de l’autre. Là c’est juste deux personnes, et si George et Séraphin s’ajoutaient toujours dans ce même pauvre fichier html ? Quid de la synchronisation des fichiers de différents contributeurs ?

Si ces problèmes arrivent dans votre team, sachez tout court que c’est parce que vous n’utilisez pas un logiciel de gestion ou contrôle de version. Découvrons dans la suite de cet article ce que c’est un logiciel de gestion de version, bien sûr ce que c’est Git et Github et à la fin la relation entre git et github.

Logiciel de gestion de version

Un logiciel de gestion de version, version control system, (VCS pour les intimes) est un logiciel qui permet dans un projet, dossier ou repository donné, de faire la suivi de différentes opérations (modification, ajout et suppression de fichier) effectuées.

Les gents s’en passent souvent de ce type de logiciel en gérant chaque version de leurs projets dans différents endroits (/features/v1, /features/v2 etc…) mais c’est toujours pas plus aisé qu’un VCS.

Un logiciel de gestion de version peut vous permettre de savoir :

  • Qui a modifié quel fichier
  • Quand est-ce-que qui a modifié Quel fichier
  • Qui a ajouté Quoi dans Quel fichier
  • Quoi est ajouté par Qui
  • De synchroniser différentes modifications effectuées par différentes personnes.

L’avantage d’utilisation d’un VCS dans un projet

Que cela soit un projet en équipe ou en solo, l’utilisation d’un système de gestion de contrôle présente plusieurs avantages dont :

Inconvenant

Le plus gros inconvenant que j’ai trouvé sur l’utilisation de ces logiciels de gestion de version est sa prise à main qui peut être non cohésive au début et son flow qui n’est toujours pas évident au début.

Il existe plusieurs logiciels de gestion de version, les plus connus sont Subversion (SVN), Mercurial et Git.

Apprendre Git

Vous auriez facilement deviner, Git est un logiciel de gestion de version décentralisé, créé par Linux torvald, le concepteur du noyau Linux, en 2005.  Plus populaire soit-il, Git est le VCS le plus utilisé au moment où j’écris ces lignes.

J’ai personnellement  compris le concept de Git grâce au cours d’openclassrooms sur le sujet, après que j’aille approfondir d’autres notions sur Pro git book. Et que je fasse plus tard connaissance aux différentes autres ressources le cas de ce guide ou ça.

Enfin, j’ai regretté de ne pas avoir connu plutôt Try github et learnbranching

Comprendre Github

Pour mieux comprendre Github, je crois que je ne dois pas rappeler que Git précède hub pour appeler Github, Comprendre ne serait-ce que le fonctionnement de Git donne une vision globale sur ce qu’est Github, si non, vous n’auriez qu’à voir l’importance que les développeurs le donne sans pourtant savoir pourquoi, et sous cette influence, vous le trouverez aussi génial sans savoir pourquoi c’est génial, ou alors vous serez le genre de ceux qui cliquent dans ce bouton

github project

Au lieu de faire

git clone https://github.com/informagenie/customai

Bref, on peut considérer Github comme un hébergeur mais cette fois ci des codes sources. Vous envoyez le code source de votre site web dans votre hébergeur via un client FTP, chez Github, cela se fait via un client Git.

D’ailleurs ce n’est pas le seul qui existe, Il y a aussi Bitbucket que je trouve génial pour les projets privés en l’encontre de Github qui les projets privés sont facturables.

L’intégralité de fonctionnalités Github sont celles de Git, parce que Github utilise Git. Mais néanmoins, Github a certaines fonctionnalités qui lui sont propre comme :

  1. Le Fork :  Forker un dépôt A, veut dire créer un dépôt B sur base de dépôt A, en d’autres mots copier le dépôt A dans B
  2. Pull-request : C’est l’effet de demander au propriétaire d’un dépôt A de merge les modification effectué dans le dépôt B forké à partir de A

Grâce à ses deux concepts, l’open-source a vu d’autres angles, la facilité de travailler en équipe même si j’habitais au fin fond du village avec le PC de grand mère, l’oncle mon PC du moment où il y a Internet.

Catégorisé:

Étiqueté dans :

,