À moins que vous ne soyez une boutique en ligne pour une personne avec aucune équipe avec laquelle collaborer, vous avez vécu la frustration associée au partage de fichiers. Quel que soit votre effort, lorsque plusieurs personnes travaillent sur un seul projet sans système de contrôle de version, tout devient chaotique .

Si vous travaillez avec des développeurs sur la création et l'implémentation de sites Web, la fusion entre les modèles frontaux et les fonctionnalités dorsales peut constituer un trou noir effrayant.

Des problèmes tels que les écrasements, les fichiers perdus et le phénomène trop courant de "travailler sur une version précédente" surgissent constamment . Et une fois que les fonctionnalités de back-end ont été intégrées à vos modèles, vous êtes terrifié à l'idée de les toucher, de peur de casser quelque chose qu'un développeur a passé beaucoup de temps à travailler.

En outre, même si vous disposez d’un référentiel commun que tout le monde tire des cotes, au moins un membre de votre équipe a oublié de récupérer les fichiers les plus récents et est sur le point de faire exploser ses derniers ajouts.

Dans cet article, je vais vous donner un bref aperçu de Git, un excellent système de contrôle de version .

Contrôle de version - une explication rapide et sale

Le contrôle de version (également appelé contrôle de révision ou gestion du contrôle de source ) est un excellent moyen de résoudre le problème de partage de fichiers.

Le concept de base est le suivant: il existe un référentiel principal pour tous les fichiers de projet . Les membres de l'équipe vérifient les fichiers, apportent des modifications, puis les vérifient (ou les valident ). Le système de contrôle de version (VCS) note automatiquement qui a modifié les fichiers, quand ils ont été modifiés et quels étaient les éléments nouveaux ou différents.

Il vous demande également d'écrire une petite note sur le changement afin que tout le monde sur le projet sache d'un coup d'œil ce que vous avez fait et pourquoi. Chaque fichier aura alors un historique de révision afin que vous puissiez facilement revenir à une version précédente de n'importe quel fichier si quelque chose tourne mal.

Un bon VCS vous permet également de fusionner les modifications apportées au même fichier . Si vous et une autre personne travaillez localement sur le même fichier en même temps, lorsque vous renverrez ces fichiers dans le référentiel principal, le système fusionnera les deux ensembles de modifications pour créer un nouveau fichier entièrement à jour. Si des conflits surviennent lors de la fusion, il les mettra en évidence pour vous.

Vous utilisez probablement un VCS très brut pour garder vos fichiers en ordre. Si vous êtes un designer, cela ressemble à ceci:

dpcwqxg_312gvhkh4s6_b

Designer Version Control - FAIL

Cela fonctionne assez bien pour les PSD et autres gros fichiers binaires, qui ne se prêtent pas vraiment à VCS. Mais il existe une bien meilleure façon de le faire lorsque vous gérez le code source d’un site Web.

Les avantages de l'utilisation d'un système de contrôle de version incluent:

  • Les fichiers ne peuvent pas être écrasés
  • Il existe un référentiel commun contenant tous les fichiers les plus récents
  • Les gens peuvent travailler sur les mêmes fichiers simultanément sans conflit
  • Vous permet de revenir à une version antérieure du fichier / projet si nécessaire
  • Rendre vos développeurs très heureux

Même si vous ne travaillez pas avec une équipe, le contrôle de version peut vous sauver la vie . La sauvegarde de fichiers est l'une des choses les plus simples que vous puissiez faire pour vous éviter de perdre votre travail ou de devoir tout recommencer.

L'idée d'un VCS semble intimidante au premier abord, d'autant plus que la plupart de la documentation est écrite par et pour les développeurs . Mais une fois que vous avez décidé de l'intégrer dans votre flux de travail, vous vous rendrez compte qu'il n'est pas aussi difficile qu'il n'y paraît.

dpcwqxg_322grqgzjcz_b

Rencontrez Git

OK, vous pouvez maintenant comprendre pourquoi un système de contrôle de version est un outil indispensable pour votre équipe Web. Si vous faites un peu de recherche sur Google, vous verrez qu’il ya plusieurs options, dont SVN, Mercurial, CVS, Bazaar et Git. Chacun d'entre eux pourrait être une bonne solution pour vos besoins, et je vous encourage à faire des recherches avant de choisir un VCS. Dans cet article, je vais me concentrer sur Git , celui que j'utilise quotidiennement. C'est une "étoile montante" qui a gagné en popularité grâce à une solide base de fans Linux, GitHub et le Des rails communauté.

Git est un système de contrôle de version open source gratuit créé à l'origine par Linus Torvalds pour Linux développement kernal. Linus est un gars très intelligent; quand il se met à résoudre un problème, il ne dérange pas. Un des grands différenciateurs de Git est que, contrairement à SVN et CVS, c'est un système de contrôle de version distribué . Cela signifie que chaque utilisateur dispose d'une copie complète des données du référentiel stockées localement sur sa machine. Qu'est-ce qui est génial à ce sujet? Quelques choses:

    • Tout est local , donc vous pouvez travailler hors ligne
    • Il n'y a pas de point de défaillance unique . Il ne s'appuie pas sur un seul serveur central susceptible de se bloquer et de graver, en prenant le seul référentiel pour votre projet.
    • Comme il n'a pas à communiquer avec un serveur central en permanence, les processus s'exécutent beaucoup plus rapidement

      Git a une courbe d'apprentissage un peu plus dure que SVN , mais le compromis en vaut la peine. Pensez à quel point vos amis développeurs seront impressionnés lorsque vous leur dites que vous utilisez la nouvelle chaleur qu'est Git! En toute sincérité, je ne pense pas que la courbe d’apprentissage soit aussi difficile. SVN était tout aussi déroutant pour moi au début, et je me suis heurté à plus de problèmes quotidiens lors de son utilisation.

      Installer Git n'est pas amusant et les jeux. J'ai eu la chance d'avoir un développeur compétent, prêt à vous aider, mais il existe de nombreuses ressources en ligne pour vous aider. Il s'exécutera sur un PC, un Mac ou un Linux, bien que l'installation sous Linux et OSX soit beaucoup plus facile que sous Windows.

      Vous pouvez télécharger la dernière version de Git ici Une fois que vous avez les fichiers, essayez ceci Guide rapide pour commencer avec le processus d'installation. Pour les utilisateurs Windows, cette étape par étape guide visuel devrait être utile. Utilisateurs de Mac, essayez ce guide sur GitHub

      Commencer

      Une fois que vous avez installé Git, vous pouvez créer votre référentiel . Pour transformer un dossier existant en un référentiel Git, utilisez les commandes suivantes dans votre fenêtre Terminal ou Invite de commandes:

      cd path/to/projectgit initgit add .git commit

      Ce que vous dites à Git, c'est:

      • Initialiser ce répertoire
      • Ajouter tout - tous les fichiers et sous-répertoires
      • Valider ou stocker , toutes les modifications en cours dans le référentiel

      Si vous détestez la ligne de commande, vous pouvez également utiliser l' interface graphique de Git . Ce n'est pas la plus belle chose que vous ayez jamais vue, mais elle est là si vous en avez besoin.

      Une capture d'écran de l'interface graphique de Git

      Un exemple de workflow Git

      J'utilise actuellement Git sur un Mac pour travailler sur une application Web avec plusieurs développeurs Web. Nous avons une version "master" du code vers lequel nous poussons nos fichiers et nous exécutons chacun une copie complète localement. Chaque jour, mon flux de travail se déroule comme suit:

      dpcwqxg_323gnhgbwg3_b

      1. Terminal du feu . Démarrez ma base de données mysql locale (donc l'application que nous construisons peut s'exécuter localement sur ma machine).
      2. Utilisez Terminal pour vérifier les dernières modifications en utilisant la commande "git pull" . Cela me permet d'obtenir toutes les modifications apportées par les autres membres de l'équipe et archivées dans notre référentiel principal.
      3. Ouvrez le projet dans TextMate et apportez mes modifications.
      4. Validez les modifications et ajoutez mes notes . Cela ne les engage que localement. Je m'engage souvent, probablement dix fois ou plus par jour. Cela m'aide à rester sur la bonne voie.
      5. Poussez mes modifications dans le référentiel maître en utilisant "git push" . Maintenant, les autres membres de l'équipe peuvent vérifier et voir mes modifications. Vous devriez le faire au moins une fois par jour ou après tout ajout majeur.

      Toutes ces actions peuvent être effectuées facilement via la fenêtre Terminal , mais je suis une fille visuelle. Pour cette raison, j'utilise GitX , une interface Git pour OSX , pour effectuer mes commits. Je continue à pousser et à sortir du terminal, mais GitX me permet d'organiser facilement mes commits et de comprendre ce que je fais.

      Capture d'écran GitX
      En haut, il met en évidence les modifications apportées aux fichiers. Dans la partie inférieure gauche se trouve votre liste de changements non planifiés . Pour les valider, faites glisser un ou plusieurs fichiers dans la zone "Staged Changes" à droite, entrez votre message de validation et appuyez sur le bouton Valider.

      Si je retourne à l'arborescence, je peux voir ce qui a été poussé dans le référentiel. Si mes fichiers n'étaient pas à jour avec les fichiers maîtres, les balises vertes et bleues en haut seraient désynchronisées. GitNub offre une interface similaire au style Mac.

      Capture d'écran GitX
      Il y a aussi un grand Bundle TextMate disponible. Avec elle, vous pouvez pousser, tirer, valider et bien plus sans jamais quitter TextMate. C'est extrêmement efficace.

      TextMate avec Git Bundle installé

      Apprendre encore plus

      Git Cheat Sheet

      Git Cheat Sheet par Zack Rusin

      Au dessus: Zack Rusin's Git Cheat Sheet

      Je suis encore un débutant avec Git, donc je n'ai fait qu'effleurer ce que vous pouvez en faire, mais j'ai vraiment vu la lumière en ce qui concerne le contrôle de version, et je suis content d'avoir enfin compris le train en marche.

      Pour en savoir plus sur l’utilisation de Git, consultez ces excellentes ressources:

      Intros à Git

      Apprendre à connaître Git
      Entrée Wikipedia sur Git
      Pourquoi Git est mieux que X
      Le discours de Linus Torvald sur Git
      Un tour de Git: les bases
      Git Ready

      Cheat Sheets / Tips

      37 Signals Git Resources
      Git For The Lazy
      Le manuel de l'utilisateur Git
      Une astuce de Git
      GitHub's Git Cheat Sheet
      Git Magic

      Intros to Version Control

      Contrôle de version pour les concepteurs
      Guide visuel du contrôle de version
      Entrée Wikipedia sur le contrôle de révision
      Choix d'un système de contrôle de version distribué
      Je me demande ce que fait ce bouton (une liste à part)


      Écrit exclusivement pour WDD par Mindy Wagner. Elle est web designer chez Viget Labs et travaille depuis plus de 8 ans dans le domaine de l’impression et du web design. Elle est titulaire d'un diplôme en arts médiatiques électroniques et en communication de l'Institut polytechnique Rensselaer.

      Utilisez-vous Git ou un autre logiciel pour le contrôle de version? S'il vous plaît partager votre expérience avec nous!