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 (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:
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.
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.
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:
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
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:
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.
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:
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.
Ø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.
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.
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:
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
37 Signaler Git Resources
Git For The Lazy
Git Brugervejledning
En Gaggle Git Tips
GitHubs Git Cheat Sheet
Git Magic
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!