Medmindre du er en en person webshop uden team til at samarbejde med, har du oplevet den frustration, der følger med fildeling. Uanset hvor svært du prøver, når flere mennesker arbejder på et enkelt projekt uden et versionsstyringssystem på plads, bliver ting kaotisk .

Hvis du arbejder med udviklere om udbygning og implementering af websteder, kan fusionen mellem front-end skabeloner og back-end funktionalitet være et skræmmende sort hul.

Problemer som overskrivninger, tabte filer og det alt for almindelige "arbejde ud af en tidligere version" fænomen opdrætter konstant . Og når back-end-funktionalitet er sat i dine skabeloner, bliver du bange for at røre dem af frygt for at bryde noget, som en udvikler har brugt meget tid på at komme på arbejde.

Derudover, selvom du har et fælles depot, som alle trækker fra odds, er mindst et medlem af dit team glemt at gribe de nyeste filer og er ved at blæse op med deres seneste tilføjelser.

I denne artikel giver jeg dig en hurtig gennemgang af Git, et fremragende versionsstyringssystem .

Version Control - En hurtig og beskidt forklaring

Version Control (også kendt som Revision Control eller Source Control Management ) er en fantastisk måde at løse fildelingsproblemet på.

Det grundlæggende koncept er dette: Der er et hovedlager for alle projektfiler . Teammedlemmer tjekker filer ud, foretager ændringer, og kontrollerer dem derefter igen (eller begår dem). Version Control System (VCS) noterer automatisk, hvem der ændrede filerne, da de blev ændret, og hvad med dem var nyt eller anderledes.

Det beder dig også om at skrive en lille note om ændringen, så alle på projektet ved et overblik ved hvad du gjorde og hvorfor. Hver fil vil derefter have en revisionshistorik, så du nemt kan gå tilbage til en tidligere version af en fil, hvis noget går galt forkert.

En god VCS giver dig også mulighed for at fusionere ændringer i den samme fil . Hvis du og en anden person arbejder lokalt på samme fil på samme tid, når du skubber disse filer tilbage til hovedarkivet, vil systemet fusionere begge sæt ændringer for at oprette en ny og fuldt opdateret fil. Hvis der opstår konflikter under fusionen, vil det fremhæve dem for dig.

Du bruger formentlig en meget rå VCS lige nu for at holde dine filer lige. Hvis du er designer, ser det sådan ud:

dpcwqxg_312gvhkh4s6_b

Designer Version Control - FAIL

Dette fungerer godt nok til PSD'er og andre store binære filer, som ikke rigtig giver sig til VCS. Men der er en meget bedre måde at gøre det, når du styrer kildekoden for et websted.

Fordele ved at bruge et Version Control System inkluderer:

  • Filer kan ikke overskrives
  • Der er et fælles depot, der indeholder alle de nyeste filer
  • Folk kan arbejde på samme filer samtidigt uden konflikt
  • Giver dig mulighed for at vende tilbage til en ældre version af filen / projektet, hvis det er nødvendigt
  • Gør dine udviklere meget glade

Selvom du ikke arbejder med et hold, kan versionskontrol være en livredder . Sikkerhedskopiering af filer er en af ​​de nemmeste ting, du kan gøre for at redde dig selv fra at miste arbejde eller at skulle starte igen.

Idéen om en VCS virker skræmmende i starten, især da det meste af dokumentationen er skrevet af og for udviklere . Men når du gør flytningen til at indarbejde det i din arbejdsgang, finder du det ikke så hårdt som det ser ud.

dpcwqxg_322grqgzjcz_b

Mød Git

OK, så nu kan du se, hvorfor et Version Control System er et must-have til dit webteam. Hvis du gør en lille Googling, vil du se, at der er en hel del muligheder derude, herunder SVN, Mercurial, CVS, Bazaar og Git. Enhver af dem kunne være en god løsning til dine behov, og jeg opfordrer dig til at gøre nogle undersøgelser, før du vælger en VCS. I denne artikel vil jeg fokusere på Git , den jeg bruger dagligt. Det er en "stigende stjerne", der er blevet populær takket være en stærk Linux fanbase, GitHub og Rails fællesskab.

Git er et gratis open source-versionsstyringssystem, der oprindeligt blev oprettet af Linus Torvalds til Linux kernal udvikling. Linus er en meget smart fyr; når han går ud for at løse et problem, knuser han ikke rundt. En af Gits store differentiatorer er, at i modsætning til SVN og CVS er det en distribueret version kontrol system . Det betyder, at hver bruger har en komplet kopi af de lagerdata, der er gemt lokalt på deres maskine. Hvad er så godt med det? Et par ting:

    • Alt er lokalt , så du kan arbejde offline
    • Der er ikke noget eneste punkt i fiasko . Det er ikke afhængigt af en central server, der kunne kollidere og brænde, og tager det eneste lager til dit projekt med det.
    • Fordi det ikke behøver at kommunikere med en central server konstant, kører processerne meget hurtigere

      Git har en lidt hårdere læringskurve end SVN , men afgangen er det værd. Bare tænk, hvor imponeret din udvikler venner vil være, når du fortæller dem, at du bruger den nye hotness, der er Git! I al alvorlighed tror jeg ikke, at lærekurven er alt så stejl. SVN var lige forvirrende for mig i starten, og jeg løb i mere daglige problemer, når jeg brugte den.

      Installation af Git er ikke sjovt og spil. Jeg var heldig at have en videnskabelig udvikler villig til at hjælpe, men der er masser af ressourcer online for at få dig igennem det. Den kører på en pc, Mac eller Linux-boks, selv om installationen til Linux og OSX er meget lettere end for Windows.

      Du kan downloade den nyeste version af Git her Når du har filerne, skal du prøve dette hurtig guide for at komme i gang med installationsprocessen. For Windows-brugere, dette trin for trin visuel vejledning bør være nyttigt. Mac-brugere, prøv denne vejledning fundet på GitHub

      Kom i gang

      Når du har installeret Git, kan du oprette dit depot . Hvis du vil konvertere en eksisterende mappe til et Git-depot, skal du bruge følgende kommandoer i vinduet Terminal eller Kommandoprompt:

      cd path/to/projectgit initgit add .git commit

      Hvad du fortæller Git at gøre er:

      • Initialiser denne mappe
      • Tilføj alt i det - alle filer og undermapper
      • Forpligte eller gemme alle aktuelle ændringer i lageret

      Hvis du hader kommandolinjen, kan du også gøre dette ved hjælp af Git GUI . Det er ikke den smukkeste ting, du nogensinde har set, men det er der, hvis du har brug for det.

      Et screenshot af Git GUI

      En prøve Git Workflow

      Jeg bruger for øjeblikket Git på en Mac til at arbejde på en webapplikation med flere webudviklere. Vi har en "master" version af koden, som vi skubber vores filer til, og vi kører hver en fuld kopi lokalt. På en given dag går mit arbejdsgang sådan som sådan:

      dpcwqxg_323gnhgbwg3_b

      1. Slå op Terminal . Start min lokale mysql database (så den applikation vi bygger kan køre lokalt på min maskine).
      2. Brug Terminal til at tjekke de seneste ændringer ved at bruge kommandoen "git pull" . Dette får mig alle de ændringer, som andre holdmedlemmer har foretaget og tjekket ind i vores mesterbibliotek.
      3. Åbn projektet i TextMate og foretag mine ændringer.
      4. Forbind ændringer og tilføj mine noter . Dette forpligter dem kun lokalt. Jeg begår ofte, sandsynligvis ti eller flere gange om dagen. Dette hjælper med at holde mig på rette spor.
      5. Skub mine ændringer til masterbiblioteket ved hjælp af "git push" . Nu kan andre holdmedlemmer tjekke og se mine ændringer. Du bør gøre dette mindst en gang om dagen eller efter en større tilsætning.

      Alle disse handlinger kan gøres let gennem Terminal vinduet , men jeg er en visuel slags pige. Derfor bruger jeg GitX , en Git gui til OSX , for at gøre mine forpligtelser. Jeg skubber stadig og trækker igennem Terminal, men GitX gør det nemt for mig at organisere mine begivenheder og omslutte mit hoved omkring, hvad jeg laver.

      GitX Screenshot
      Øverst er det fremhævet, hvilken ændring der blev foretaget i filerne. Nederst til venstre er din liste over uændrede ændringer . For at begå dem skal du trække en eller flere filer til området "Staged Changes" til højre, indtaste din commit-meddelelse og trykke på Commit-knappen.

      Hvis jeg flip til trævisningen, kan jeg se, hvad der er blevet skubbet til lageret. Hvis mine filer ikke var aktuelle med masterfilerne, ville de grønne og blå tags øverst være ude af synkronisering. GitNub tilbyder en lignende Mac-style interface.

      GitX Screenshot
      Der er også en stor TextMate-bundle ledig. Med det kan du skubbe, trække, forpligte og mere uden at have forladt TextMate. Det er ekstremt effektivt.

      TextMate med Git Bundle installeret

      Lær mere

      Git Cheat Sheet

      Git Cheat Sheet af Zack Rusin

      Over: Zack Rusins ​​Git Cheat Sheet

      Jeg er stadig nybegynder at Git mig selv, så jeg har kun ridset overfladen med hvad du kan gøre med det, men jeg har helt sikkert set lyset, når det kommer til versionskontrol, og er glad for at jeg endelig kom på vognen.

      For at lære mere om at bruge Git, tjek disse fantastiske ressourcer:

      Intros To Git

      Lære at vide Git
      Wikipedia indtastning på Git
      Hvorfor Git er bedre end X
      Linus Torvalds TED tal på Git
      En tur til Git: Grundlæggende
      Git Ready

      Snydeark / Tips

      37 Signaler Git Resources
      Git For The Lazy
      Git Brugervejledning
      En Gaggle Git Tips
      GitHubs Git Cheat Sheet
      Git Magic

      Intros til Version Control

      Version Control For Designers
      En visuel vejledning til Version Control
      Wikipedia indtastning på Revision Control
      Valg af distribueret Version Control System
      Jeg spekulerer på, hvad denne knap gør (en liste fra hinanden)


      Skrevet udelukkende til WDD af Mindy Wagner. Hun er webdesigner hos Viget Labs og har arbejdet i både print og webdesign i over 8 år. Hun har en grad i Electronic Media Art and Communication fra Rensselaer Polytechnic Institute.

      Bruger du Git eller anden software til versionskontrol? Venligst del din erfaring med os!