Tenzij u een eenpersoonswebshop zonder team bent om mee samen te werken, heeft u de frustratie ervaren die gepaard gaat met het delen van bestanden. Hoe hard je ook probeert, wanneer meerdere mensen aan een enkel project werken zonder een versiecontrolesysteem, worden de zaken chaotisch .

Als u met ontwikkelaars werkt aan de buildout en implementatie van websites, kan de combinatie van front-end templates en back-end-functionaliteit een eng zwart gat zijn.

Problemen zoals overschrijvingen, verloren bestanden en het al te vaak voorkomende fenomeen 'werken aan een eerdere versie' duiken voortdurend op . En wanneer back-endfunctionaliteit in uw sjablonen is geplaatst, bent u doodsbang om ze aan te raken uit angst om iets te breken dat een ontwikkelaar veel tijd aan het werk doorbracht.

Bovendien, zelfs als je een gemeenschappelijke repository hebt die iedereen aan het uitdagen is, is ten minste één lid van je team vergeten de nieuwste bestanden te pakken en staat op het punt de dingen op te blazen met hun nieuwste toevoegingen.

In dit artikel geef ik je een korte bespreking van Git, een uitstekend versiecontrolesysteem .

Versiebeheer - een snelle en vuile uitleg

Versiebeheer (ook bekend als Revision Control of Source Control Management ) is een prima manier om het probleem met het delen van bestanden op te lossen.

Het basisconcept is dit: er is één hoofdrepository voor alle projectbestanden . Teamleden controleren bestanden, brengen wijzigingen aan en controleren ze vervolgens opnieuw (of verbinden ze). Het Version Control System (VCS) geeft automatisch aan wie de bestanden heeft gewijzigd, wanneer deze werden gewijzigd en hoe dan ook was deze nieuw of anders.

Het vraagt ​​je ook om een ​​kleine notitie te schrijven over de verandering zodat iedereen in het project in een oogopslag weet wat je hebt gedaan en waarom. Elk bestand heeft dan een revisiegeschiedenis, zodat u gemakkelijk terug kunt gaan naar een vorige versie van een bestand als er iets vreselijk mis gaat.

Met een goede VCS kunt u ook wijzigingen in hetzelfde bestand samenvoegen . Als u en een andere persoon tegelijkertijd op hetzelfde bestand werken en tegelijkertijd deze bestanden terugsturen naar de hoofdrepository, voegt het systeem beide sets wijzigingen samen om een ​​nieuw en volledig bijgewerkt bestand te maken. Als er tijdens de samenvoeging conflicten optreden, worden deze voor u gemarkeerd.

Waarschijnlijk gebruikt u momenteel een zeer primitieve VCS om uw bestanden recht te houden. Als je een ontwerper bent, ziet het er ongeveer zo uit:

dpcwqxg_312gvhkh4s6_b

Designer Version Control - FAIL

Dit werkt goed genoeg voor PSD's en andere grote binaire bestanden, die zich niet echt lenen voor VCS. Maar er is een veel betere manier om het te doen wanneer u de broncode voor een website beheert.

Voordelen van het gebruik van een versiebeheersysteem zijn:

  • Bestanden kunnen niet worden overschreven
  • Er is een gemeenschappelijke repository met de nieuwste bestanden
  • Mensen kunnen tegelijkertijd aan dezelfde bestanden werken zonder conflicten
  • Hiermee kunt u indien nodig teruggaan naar een oudere versie van het bestand / project
  • Je ontwikkelaars heel blij maken

Zelfs als u niet met een team werkt, kan versiebeheer een redder in nood zijn . Het maken van een back-up van bestanden is een van de gemakkelijkste dingen die u kunt doen om uzelf te redden van het verlies van uw werk of om opnieuw te beginnen.

Het idee van een VCS lijkt in eerste instantie ontmoedigend, vooral omdat de meeste documentatie is geschreven door en voor ontwikkelaars . Maar zodra u de stap zet om het in uw workflow op te nemen, zult u merken dat het lang niet zo moeilijk is als het eruit ziet.

dpcwqxg_322grqgzjcz_b

Ontmoet Git

OK, dus nu kun je zien waarom een versiebeheersysteem een must-have is voor je webteam. Als je een beetje Googelt, zul je zien dat er nogal wat opties zijn, zoals SVN, Mercurial, CVS, Bazaar en Git. Elk van hen kan een goede oplossing zijn voor uw behoeften en ik moedig u aan om wat onderzoek te doen voordat u een VCS selecteert. In dit artikel ga ik focussen op Git , degene die ik dagelijks gebruik. Het is een "rijzende ster" die aan populariteit heeft gewonnen dankzij een sterke Linux-fanbase, GitHub en de rails gemeenschap.

Git is een gratis open-source versiecontrolesysteem dat oorspronkelijk is gemaakt door Linus Torvalds voor Linux kernalontwikkeling. Linus is een erg slimme vent; wanneer hij op weg is om een ​​probleem op te lossen, rommelt hij niet rond. Een van de grote onderscheidende factoren van Git is dat het in tegenstelling tot SVN en CVS een is gedistribueerd versiebeheersysteem . Dit betekent dat elke gebruiker een volledige kopie van de repositorygegevens heeft die lokaal op zijn computer zijn opgeslagen. Wat is daar zo geweldig aan? Een paar dingen:

    • Alles is lokaal , dus u kunt offline werken
    • Er is geen enkel punt van mislukking . Het is niet afhankelijk van één centrale server die kan crashen en branden, waarbij de enige opslaglocatie voor uw project wordt meegenomen.
    • Omdat het niet constant met een centrale server hoeft te communiceren, lopen processen veel sneller

      Git heeft een iets moeilijkere leercurve dan SVN , maar de afweging is de moeite waard. Bedenk eens hoe onder de indruk uw ontwikkelaarsvrienden zullen zijn wanneer u hen vertelt dat u de nieuwe hotness gebruikt die Git is! In alle ernst denk ik niet dat de leercurve zo zwaar is. SVN was in het begin even verwarrend voor mij, en ik kwam meer dagelijkse problemen tegen bij het gebruik ervan.

      Git installeren is niet leuk en games. Ik had het geluk dat een deskundige ontwikkelaar bereid was om te helpen, maar er zijn genoeg bronnen online om je er doorheen te helpen. Het zal worden uitgevoerd op een pc, Mac of Linux-box, hoewel de installatie voor Linux en OSX aanzienlijk eenvoudiger is dan voor Windows.

      Je kunt de nieuwste versie van Git downloaden hier Zodra je de bestanden hebt, probeer dit Snelgids om u op weg te helpen met het installatieproces. Voor Windows-gebruikers stap voor stap visuele gids zou nuttig moeten zijn. Mac-gebruikers, probeer deze handleiding gevonden op GitHub

      Ermee beginnen

      Als je Git eenmaal hebt geïnstalleerd, kun je je repository maken . Om een ​​bestaande map om te zetten in een Git-repository, gebruikt u de volgende opdrachten in uw terminal- of opdrachtpromptvenster:

      cd path/to/projectgit initgit add .git commit

      Wat je Git vertelt om te doen is:

      • Initialiseer deze map
      • Voeg alles toe - alle bestanden en submappen
      • Alle huidige wijzigingen in de repository vastleggen of opslaan

      Als je de opdrachtregel haat, kun je dit ook doen met de Git GUI . Het is niet het mooiste dat je ooit hebt gezien, maar het is er als je het nodig hebt.

      Een screenshot van de Git GUI

      Een sample Git-workflow

      Ik gebruik Git momenteel op een Mac om te werken aan een webtoepassing met meerdere webontwikkelaars. We hebben een "hoofd" -versie van de code waarnaar we onze bestanden pushen en we voeren elk een volledige kopie lokaal uit. Op een willekeurige dag gaat mijn workflow ongeveer als volgt:

      dpcwqxg_323gnhgbwg3_b

      1. Start Terminal op . Start mijn lokale mysql-database op (zodat de applicatie die we bouwen lokaal kan worden uitgevoerd op mijn computer).
      2. Gebruik Terminal om de laatste wijzigingen te bekijken met de opdracht "git pull" . Hiermee krijg ik alle wijzigingen die door andere teamleden zijn aangebracht en in onze hoofdopslagplaats gecontroleerd.
      3. Open het project in TextMate en breng mijn wijzigingen aan.
      4. Wijzigingen vastleggen en mijn notities toevoegen . Dit verbindt ze alleen lokaal. Ik pleeg regelmatig, waarschijnlijk tien of meer keer per dag. Dit helpt me op het goede spoor te houden.
      5. Duw mijn wijzigingen in de hoofdrepository met behulp van "git push" . Nu kunnen andere teamleden uitchecken en mijn wijzigingen bekijken. U moet dit minstens één keer per dag doen of na een belangrijke toevoeging.

      Al deze acties kunnen eenvoudig worden gedaan via het Terminal-venster , maar ik ben een visueel soort meisje. Om die reden gebruik ik GitX , een Git gui voor OSX , om mijn commits te maken. Ik push en trek nog steeds door Terminal, maar GitX maakt het gemakkelijk voor mij om mijn commits te organiseren en mijn hoofd rond te winden rond wat ik aan het doen ben.

      GitX-schermafbeelding
      Bovenaan wordt aangegeven welke wijzigingen in de bestanden zijn aangebracht. Linksonder staat je lijst met niet- gestagge wijzigingen . Om ze te binden, sleept u een of meer bestanden naar het gedeelte "Gefaseerde wijzigingen" aan de rechterkant, typt u uw commit-bericht in en drukt u op de knop Vastleggen.

      Als ik naar de structuurweergave ga, kan ik zien wat er naar de repository is gepusht. Als mijn bestanden niet up-to-date waren met de hoofdbestanden, zouden de groene en blauwe tags bovenaan niet meer synchroon lopen. GitNub biedt een vergelijkbare interface in Mac-stijl.

      GitX-schermafbeelding
      Er is ook een geweldig TextMate-bundel beschikbaar. Hiermee kun je pushen, trekken, vastleggen en meer zonder TextMate te verlaten. Het is uiterst efficiënt.

      TextMate met Git Bundle geïnstalleerd

      Kom meer te weten

      Git Cheatsheet

      Git Cheat Sheet van Zack Rusin

      Bovenstaand: Git Cheat Sheet van Zack Rusin

      Ik ben nog steeds een newbie voor Git, dus ik heb alleen de oppervlakte bekrast over wat je ermee kunt doen, maar ik heb zeker het licht gezien als het gaat om versiebeheer, en ik ben blij dat ik eindelijk aan de slag ben gegaan bandwagon.

      Bekijk deze geweldige bronnen voor meer informatie over het gebruik van Git:

      Intros To Git

      Git leren kennen
      Wikipedia-vermelding op Git
      Waarom Git beter is dan X
      TED-talk van Linus Torvald op Git
      A Tour of Git: The Basics
      Git Ready

      Cheatsheets / tips

      37 Signalen Git-bronnen
      Git For The Lazy
      De gebruikershandleiding van Git
      Een overvloed aan Git-tips
      Git Cheat Sheet van GitHub
      Git Magic

      Inleiding tot versiebeheer

      Versiebeheer voor ontwerpers
      Een visuele gids voor versiebeheer
      Wikipedia-vermelding op Revision Control
      Een gedistribueerd versiecontrolesysteem kiezen
      Ik vraag me af wat deze knop doet (een lijst apart)


      Exclusief geschreven voor WDD door Mindy Wagner. Ze is een webdesigner bij Viget Labs en werkt al meer dan 8 jaar in print- en webdesign. Ze heeft een diploma in elektronische mediakunst en communicatie van het Rensselaer Polytechnic Institute.

      Gebruikt u Git of andere software voor versiebeheer? Deel alstublieft uw ervaring met ons!