Arbejde fjernt er blevet meget mere almindeligt i webudvikling i løbet af de sidste par år. Før versionskontrol ville arbejdet eksternt på samme udviklingsprojekt have været et absolut mareridt. Udviklere ville have haft til Send store filer Til hinanden (sandsynligvis gennem e-mail), indsættes i deres egen kode, før du sender den tilbage. Der var ingen reel måde at spore, hvad der var blevet tilføjet, og hvornår.
Heldigvis er Version Control ankommet og gjort udvikling på alle fronter meget mere håndterbare. Webprojekter er blevet meget nemmere at implementere og styre, især når det kommer til at arbejde i et fjernudviklingshold. Du behøver ikke længere bekymre dig om, at den nuværende version af en hjemmeside overskrives - hvert holdmedlem er gratis at arbejde på nogen fil når som helst, der er ingen forvirring om, hvor den nyeste version af en fil opbevares - og toppen Sky lagring hjælper med processen også.
I denne vejledning skal vi bruge Github. at styre vores kode. Der er mange forskellige typer af Version Control Tool derude, som bitbucket og TFVC, men selvom de er alle forskellige, forbliver principperne det samme, når det gælder forvaltningskode.
For flere måder at gøre din websted til at bygge processen lettere, se vores vejledninger til toppen Website Builder. og Web Hosting. service.
For det første er det meget vigtigt at have en vellykket forgreningsmodel, når man arbejder i ethvert hold for at gøre udviklings- og implementeringsprocessen fungere problemfrit. Du vil højst sandsynligt have flere udviklere, der arbejder på samme projekt. Når jeg arbejder med en fjern arbejdsstyrke, mener jeg, at den bedste arbejdsgang er sammensat af tre hovedafdelinger samt et sæt midlertidige:
Der vil også være et sæt funktionsgrene. Men disse vil bare være midlertidige til i første omgang at opbygge de nye funktioner.
Lad os antage, at du kører et hold med to udviklere, der arbejder eksternt. Vi vil kalde dem Sarah og James: De arbejder begge på samme e-handelswebsted for en klient. Sarah skal udvikle en funktion, der registrerer kundens detaljer.
Vi ville bryde dette ned i tre separate brugerhistorier - tilføjer, redigere og fjerne - og derefter tilføje disse tre billetter i Sprint Backlog.
Så lad os sige, at Sarah begynder på sektionen Tilføjelse af kundeoplysninger. Hun ville være nødt til at oprette funktionen gren 'kunde-detaljer' og en brugerhistorie en til den første opgave 'add-detaljer'.
GIT Checkout Udvikle & Amp; & Amp; git pull Oprindelse / Udvikling
git checkout -b funktion / kunde-detaljer
git checkout -b add-detaljer
Sarah ville fortsætte med at arbejde på den midlertidige filial 'add-adresse' lokalt og begå hendes arbejde, da hun udvikler sig. Lad os nu sige, at James ønsker at hjælpe Sara med kundens detaljer, så han begynder at arbejde på detaljeringsslettet.
James ville trække den sidste version af den delte filial og oprette en ny filial for brugerhistorien 'Slet-detaljer'. Så kan han begynde at lave sine egne tilføjelser uden at bekymre sig om at overskrive Sarahs kode.
GIT checkout funktion / kunde-detaljer
git pull Oprindelse / funktion / kunde-detaljer
git checkout -b slet-detaljer
Han vil også bruge sin midlertidige filial til kode lokalt og begå eventuelle ændringer. Når Sarah har afsluttet sin funktion lokalt, sætter hun billetten i kode gennemgang. Hun ville skubbe sin kode til Staging-grenen og åbne en pull-anmodning med stagingmiljøet.
// hun skubber sin kode til staging filialen
git push oprindelse Tilføj-detaljer
// Hun åbner en pull-anmodning med stagingmiljøet
git anmodning-pull station add-detaljer
Vi ville nu have den kundeoplysninger Feature filial og de to brugerhistorie funktionen filialer i udvikling 'Tilføj-detaljer' og 'Slet-detaljer'.
Når hendes kode er blevet gennemgået, kan hun fusionere sin filial til at stole. Billetten er nu i valideringskolonnen og venter på valideringen fra den ledende udvikler.
// Hun får den sidste version af Staging Branch
git checkout staging & amp; & amp; git pull Oprindelse / Staging
git ferge add-detaljer & amp; & amp; git push oprindelse staging
// Hun bygger valideringsmiljøet
// og beder produktejeren om at validere
Når Sarahs arbejde er blevet valideret, kan billetten flyttes til den færdige kolonne. Hun kan fusionere sit arbejde i funktionen og starte en anden brugerhistorie, som sletning af kundeoplysninger.
// Hun trækker den sidste version af funktionen af funktionen
git checkout funktion / kunde-detaljer
git pull Origin funktion / kunde-detaljer
git ferge add-adresse & amp; & amp; GIT Push Origin Feature / Customer-DETALJER
Når hele funktionen er blevet valideret af både hovedudvikleren og klienten, kan Sarah fusionere funktionen for at udvikle sig, da den er klar til at gå.
// Hun får den sidste version af udviklingen af udviklingen
git checkout udvikle & amp; & amp; git pull Oprindelse / Udvikling
git fusion funktion / kunde-detaljer & amp; & amp; git push oprindelse udvikle sig
Når alt er færdigt, og det er klar til at implementere i produktion, udvikler James fusionerer til udgivelse og lancerer implementeringen. På dette tidspunkt ville han vide, at al kode er korrekt, og klienten er glad. Han tagger indgivelsen af udgivelsen for at få historien om hver version.
GIT Checkout Udvikle & Amp; & Amp; git pull Oprindelse / Udvikling
git checkout release & amp; & amp; git pull Origin / Release
git fusion udvikle & amp; & amp; git tag 2.1.
git push oprindelse release -tags
Denne fjerntliggende udviklingsarbejdsproces kan være ret svært at forstå i starten, men hvis du får dit team til at arbejde ved denne metode, så har du en gratis arbejdsstrøm uden behov for at panikere om, at filer overskrives eller dine udviklere arbejder på samme område.
Der er nogle vigtige ting at huske:
GIT CO Develop & Amp; & Amp; git pull Oprindelse / Udvikling
git gren-d-staging & amp; & amp; git push oprindelse --Delete staging
git co -b staging & amp; & amp; git pull Origin Staging
Med mindre projekter kan du måske bruge en mindre kompleks workflow. Du kan bruge Master, som indeholder den mest opdaterede version, en udviklingsgren og derefter et sæt af filialer for hver yderligere funktion - om det er forum, kontaktformular, checkout system. Det hele afhænger af din personlige præference.
At håndtere sammenkomstkonflikter er svært nok, hvis du alle arbejder i samme rum, men de kan blive endnu mere af et mareridt, hvis du alle arbejder på et andet kontor. Det vigtigste er at huske på, at du altid kan fortryde en sammenkomst og vende tilbage til staten, før konflikten opstod.
Uanset om du laver alle fusionerne som blyudvikler eller dit hold, er dem, der gør dem selvstændigt, er det første skridt at forstå, hvad der er sket.
Git vil fortælle dig, at du har Unmergede stier Via. git status. :
$ git status
# På gren checkout-system
# Du har ikke-fyldte stier.
# (reparere konflikter og køre "git commits")
#
# Unmergede stier:
# (brug "git add & lt; fil & gt; ..." for at markere opløsning)
#
# begge modificerede: checkout.html
#
Ingen ændringer tilføjet til at begå (brug "git add" og / eller "git commit -a")
Nu er den mest almindelige årsag til en konflikt, når ændringer påvirker de samme filer på samme linje. Så lad os kigge på indholdet af den konfliktede linje. Du vil bemærke, at GIT er rigtig god i, at det vil markere det konfliktede område ved at omslutte det i & lt; & lt; & lt; & lt; hoved og & gt; & gt; & gt; & gt; & gt & gt; & gt; [andet / gren / navn] . I dette tilfælde er det checkout-system .
& lt; & lt; & lt; & lt; & lt; HOVED
Denne linje blev begået under arbejdet i afsnittet "User-Form".
=======
Denne linje blev derimod begået under arbejdet i filialens "checkout-system".
& gt; & gt; & gt & gt; & gt; & gt; & gt; Refs / Heads / Checkout-System
Indholdet efter den første markør stammer fra din nuværende arbejdsafdeling. Efter vinkelbeslagene fortæller git os, hvilken afdeling ændringerne kom fra. En linje med ======= adskiller de to modstridende ændringer.
Du kan nu blot åbne filen i en editor, søge efter konfliktmarkørerne og foretage de nødvendige ændringer. Når du er færdig, skal filen se præcis ud som du vil have det til at se eller alternativt kan du fortælle git, at du simpelthen vil gå med en af de redigerede versioner, kaldet vores eller deres .
git checkout --ours sti / til / konflikt-file.html
Der er også mange flette værktøjsprogrammer, der kan hjælpe med dette. KaleIdoScope er en fantastisk til MAC.
Det er lige så vigtigt som en ledende udvikler at have et projektstyringsværktøj til at styre ting som opgaver og fejl, især når dine udviklere ikke er kontorbaserede. Der er mange løsninger derude, såsom Zenhub og Asuna, men jeg tror Githubs indbyggede projekt- og problemsystem er det bedste.
Du kan gøre ting som at oprette et nyt projekt, oprette bestyrelser eller tildele problemer. Og ikke bare forvirre problemer med problemer: Du kan også bruge det til forbedringer, spørgsmål og bugs, blandt andet.
Her er et par af sine bedste funktioner:
Hvis du går til Github og derefter gå til en af dine repositorier, vil du se en fane, der kaldes projekter. Derfra kan du vælge nyt projekt, oprette dine projektoplysninger og oprette en ny projektskabelon.
Hvis du nu vælger fanen Problemer, der ligger langs toppen, og vælg nyt problem, vil du være i stand til at oprette et nyt problem. Du kan derefter anvende forskellige etiketter - det er ting som fejl, forbedring, spørgsmål og duplikat. Du kan også bruge forbedring for en ny funktion eller en anmodning. Du kan derefter tildele forskellige holdmedlemmer til opgaven, en milepæl og det projekt, du lige har oprettet.
Tildelte medlemmer vil så have en liste over alle deres opgaver, og du kan endda bruge projektkortet til at holde styr på, hvad der for øjeblikket er bygget. Hvis du husker vores tidligere tutorial, talte vi om at flytte billetter til Sprint Backlog og validering. Så Github virker rigtig godt som et alt-i-et-værktøj til at overvåge et projekt.
Denne artikel blev oprindeligt offentliggjort i udstedelse 311 af net , verdens bedst sælgende magasin til webdesignere og udviklere. Køb problem 311 her eller Abonner her .
Relaterede artikler:
(Billedkredit: fremtiden) Variable skrifttyper Aktiver skriftdesignere til at definere type variationer i selve skrif..
Hvis du har følt dig fast i en kreativ rusk, kan det være værd at have et øjeblik at tage lager på din karriere og bestemme,..
Brugen af kuppelys har været en af de største fremskridt i CGI-skabelsen i løbet af det sidste årti. Badning en s..
Layout for internettet har altid været begrænset, der har virkelig aldrig været noget virkelig dedikeret til at gøre indhold ..
I en verden, hvor brugerne har høje forventninger til deres erfaring på web- og mobilen, er prototyping og brugerevaluering nøglen. Det er nu almindeligt at progressivt iterere på prototy..
Materialer. Marjolein bruger linolie som et medium, som har gavn af tørring inden for dage. Når du arbej..
At male en figur, der ser troværdigt vådt, kræver, at du tager højde for en række faktorer - en nøgle, der er den type stof..
I løbet af de seneste år har jeg honet mine færdigheder i belysning og gengivelse samt nogle andre teknikker med forskellige g..