Qu'est-ce que Git et pourquoi utiliser le contrôle de version si vous êtes développeur?
En tant que développeurs Web, nous avons souvent tendance à travailler sur des sites de développement locaux, puis il nous suffit de tout télécharger lorsque nous avons terminé. C'est bien quand c'est juste vous et que les changements sont minimes, mais quand vous avez affaire à plus d'une personne travaillant sur quelque chose ou sur un grand projet avec beaucoup de composants compliqués, c'est tout simplement impossible. C'est alors que nous nous tournons vers quelque chose appelé contrôle de version.
Aujourd'hui, je parlerai d'un logiciel de contrôle de version open source appelé Git. Cela permet à plus d'une personne de travailler en toute sécurité sur le même projet sans se gêner, mais c'est beaucoup plus que cela aussi.
Pourquoi utiliser un logiciel de contrôle de version?
D'abord et avant tout, le nom devrait le donner. Le logiciel de contrôle de version vous permet d’avoir “les versions” d'un projet, qui montre les modifications apportées au code au fil du temps et vous permet de revenir en arrière si nécessaire et d'annuler ces modifications. Cette capacité seule - de pouvoir comparer deux versions ou d’annuler des modifications, en fait une valeur inestimable pour les projets plus importants..
Vous avez probablement même déjà fait cela vous-même à un moment donné, en sauvegardant des copies d'un projet à différents moments pour que vous ayez une sauvegarde. Dans un système de contrôle de version, seules les modifications seraient enregistrées - un fichier de correctif pouvant être appliqué à une version, afin de le rendre identique à la version suivante. Avec un développeur, cela suffit.
Mais que se passe-t-il si plusieurs développeurs travaillent sur un projet? C'est à ce moment-là que l'idée d'un serveur de contrôle de version centralisé est apparue. Celles-ci sont la norme depuis longtemps, toutes les versions étant stockées sur un serveur central, et les développeurs individuels extrayant et transférant les modifications sur ce serveur. Si vous avez déjà consulté l'historique des modifications d'une page Wikipedia, vous aurez une bonne idée de son fonctionnement dans un scénario réel:
Les avantages d'un système comme celui-ci sont que plusieurs développeurs peuvent apporter des modifications, et que chaque modification peut ensuite être attribuée à un développeur spécifique. En revanche, le fait que tout soit stocké dans une base de données distante signifie qu'aucune modification ne peut être apportée en cas de panne du serveur. et si la base de données centrale est perdue, chaque client ne dispose que de la version actuelle de ce sur quoi il travaillait.
Cela nous amène à Git, et d'autres soi-disant systèmes de contrôle de version distribués. Dans ces systèmes, les clients ne vérifient pas uniquement la version actuelle des fichiers et travaillent à partir de celles-ci - ils reflètent l’historique complet de la version. Chaque développeur a toujours une copie complète de tout. Un serveur central est toujours utilisé, mais si le pire devait arriver, tout peut toujours être restauré à partir de n'importe quel client disposant des dernières versions..
Git fonctionne spécifiquement en prenant “des instantanés” des fichiers; si les fichiers restent inchangés dans une version particulière, il crée simplement un lien vers les fichiers précédents - cela permet de garder le tout rapide et maigre.
Cela pourrait également vous intéresser de savoir que Git est utilisé pour gérer et développer le noyau Linux - le bloc de construction de base sur lequel toutes les distributions Linux sont construites..
C'est quoi Github?
Bien que vous puissiez exécuter votre propre serveur Git localement, Github est à la fois un serveur distant, une communauté de développeurs et une interface Web graphique permettant de gérer votre projet Git. Il est gratuit d'utiliser jusqu'à 5 référentiels publics (c'est-à-dire lorsque tout le monde peut afficher ou bifurquer votre code) avec des plans à faible coût pour des projets privés. Je vous suggère fortement de vous créer un compte gratuit pour pouvoir commencer à jouer avec vos propres projets ou à traquer quelqu'un d'autre.
Fourches et ramifications
Ce sont des concepts fondamentaux de l'expérience Git, alors prenons un moment pour expliquer la différence.
Vous avez probablement entendu le travail “fourchette” lorsqu'il s'agit de distributions linux. Si vous êtes familier avec l'application Media Center Plex, vous saurez qu'elle était à l'origine un fork du même open source Xbox Media Center Aeon Nox 3.5: beau et personnalisable thème pour XBMC Aeon Nox 3.5: beau et personnalisable thème pour XBMC Set votre centre multimédia exactement comme vous le souhaitez. Aeon Nox 3.5 est la version la plus récente de ce qui est peut-être le meilleur thème pour XBMC. Il s'agit d'une combinaison rare… En savoir plus. Cela signifie simplement que par le passé, certains développeurs ont pris le code de XBMC et ont décidé de suivre leur propre chemin. qui est devenu Plex.
Ceci est bien entendu totalement autorisé lorsque le projet est open source - vous pouvez prendre le code, faire ce que vous voulez avec. Avec Git, si vous estimez que vos modifications sont suffisamment bonnes pour être reprises dans le jeu. “maîtriser” projet, vous pouvez faire un “demande de traction” à l’auteur, en leur demandant de reprendre vos modifications dans leur projet initial. Cela vous permet d'avoir des centaines de milliers de développeurs travaillant sur un projet à tout moment. Aucun d'entre eux ne doit nécessairement être approuvé pour l'accès au code. Ils copient simplement le code, apportent des modifications et demandent à être restauré dans le maître. Bien sûr, c'est au propriétaire du projet original de décider s'il accepte ou non vos modifications..
Le branchement est quelque chose qui est fait en interne sur un projet par les développeurs autorisés. Il vous permet de séparer facilement des problèmes ou des fonctionnalités spécifiques et d'y travailler sans casser les fichiers maîtres. Une fois que vous êtes convaincu que votre branche a résolu le problème, vous le fusionnez dans le maître. À tout moment, il peut y avoir autant de branches que vous le souhaitez. ils ne se mêlent pas les uns aux autres. Vous pouvez également fusionner les modifications entre les branches sans toucher le maître..
Voici un excellent diagramme d'un exemple de workflow de Vincent Driessen:
La prochaine fois, nous verrons comment configurer un exemple Git fonctionnel et apporter des modifications de code dans les branches. Le contrôle de version est un sujet énorme. Je n’en ai donné qu’un bref aperçu, mais en tant que développeur habitué à apporter des modifications et à les annuler si elles ne fonctionnent pas, le concept dans son ensemble m’a ébloui - j’espère que cela vous convient aussi.
Êtes-vous un développeur expérimenté et expérimenté dans Git? Vous venez juste de commencer et pensez-vous vouloir tenter votre chance? Sound off dans les commentaires!
En savoir plus sur: Programmation, Gestion de projet, Développement Web.