
William Charles
0
4068
689
Hvis du nogensinde har arbejdet med kolleger på et dokument, kender du denne smerte: nogen tager det første pas (dokument.doc), e-mailer det derefter til alle. Den næste person gør det samme, som det tredje gør, hver ved en revision (document_rev3.doc) til filens navn. Lederen kan lide det, hun ser, og mærker det som komplet (document_final.doc) ... indtil ændringer i sidste øjeblik kommer med (document_final_Aarons ændringer_reviewed_by_Bob_now_really_final.doc).
Forestil dig ændringer som denne i snesevis af kildekodefiler. Programmerere oprettede versionskontrolsystemer (VCS) for at løse dette problem. De er lidt tekniske, men kan også være nyttige for strømbrugere. Lad os se på det grundlæggende i versionskontrol ved hjælp af det øverste system i dag, git.
Oversigt over versionskontrol under brug
Det primære formål med VCS'er er at fange versioner (også kaldet revisioner) af en fil over tid. Dette betyder ikke at stole på råmetoder som beskrevet ovenfor. I disse systemer, når du får adgang “dokument.doc” du arbejder som standard på den seneste version. Men du kan også gå tilbage til filens historie og hente tidligere versioner. Systemer, der er bygget specifikt til at administrere filversioner, begyndte i softwareudvikling, men har fundet vej til mere “mainstream” applikationer også.
Udviklingen af versionskontrol i softwareudvikling
Versionskontrolapplikationer blev oprindeligt en måde at forhindre programmerere i at bryde hinandens kode. De første systemer gjorde det nemt for brugerne at låse filer fra andre redigeringer, mens anden generation af systemer (såsom Subversion Sådan kontrolleres WordPress-versioner ved hjælp af Subversion [Linux] Sådan kontrolleres WordPress-versioner ved hjælp af Subversion [Linux] De fleste af jer ved allerede sandsynligvis, at WordPress giver en stor mængde websteder, som vi ser på hver dag. Med den store brugerbase og support, kan du gøre en masse seje ting med ...) tilføjet fuld projekt-checkout fra et centralt arkiv.
Mens disse andengen-systemer stadig bruges i vid udstrækning, migrerer industrien mod tredje generations systemer. Det vigtigste kendetegn ved disse systemer er, at de er distribueret, hvilket betyder, at der ikke er noget centralt lager. Snarere har hver bruger deres egen fulde kopi af depotet (inklusive alle tidligere revisioner). Men eventuelle ændringer (endda fuld revisioner) er “lokal” indtil han “skubber” dem til et andet depot. Denne bruger kan derefter trække en klon for at foretage ændringer og gentage processen.
Aktuel versionskontrol for ikke-programmerere
Evnen til at fange flere versioner af den samme ting er også en almindelig funktion for gennemsnitlige brugere også. Ikke kun for kodere: Topversionskontrolsystemer til forfattere Ikke kun for kodere: Topversionskontrolsystemer til forfattere Omtalelsen af versionskontrol eller revisionskontrol gør det virker som noget for nørder. Du vil blive overrasket over at vide, at versionskontrolsystemer har deres plads ikke kun i akademisk skrivning, men i…. Med adgang til billigere opbevaring, både på den lokale maskine og via brugervenlige skytjenester, har brugerne nu muligheden for at spore historikken for deres filer. Almindelige programmer gør dette på en række måder.
Operativsystemer kan fange en historie med filer eller mapper The Ultimate Windows 10 Data Backup Guide The Ultimate Windows 10 Data Backup Guide Vi har sammenfattet enhver sikkerhedskopi, gendannelse, gendannelse og reparation, vi kunne finde på Windows 10. Brug vores enkle tip og fortvivl aldrig over mistede data igen! . Dette kan ske automatisk, hver gang en fil gemmes eller i en almindelig tidsplan. Nogle desktop applikationer giver dig også mulighed for at fange versioner eller snapshots af filer. For eksempel leverer LibreOffice “Gem version” funktion (som vist i det øverste billede nedenfor), der giver dig mulighed for at gemme flere versioner af dokumentet i en fil. Endelig vil web- / sky-applikationer som Google Drive, ownCloud osv. Også holde fortid-iterationer af en fil eller et dokument (som vist for Google Dokumenter i det nederste billede nedenfor), enten bag kulisserne eller ved din ekspresskommando.
Hvorfor bruge programmering-centrisk versionskontrol derefter?
Da alle disse indstillinger på operativsystem- eller applikationsniveau allerede findes, hvorfor gider du med disse nørrede programmeringsværktøjer? Der er et par ulemper ved ovennævnte metoder, herunder:
- Nogle operativsystemer gemmer hver enkelt finjustering, du foretager i en fil i en ny version. Tilbageførselstid: 4 Værktøjer og tip til gendannelse af slettede filer i Windows. Vend tilbage: 4 Værktøjer og tip til gendannelse af slettede filer i Windows One of Windows ' største fejl kan være din redning, hvis du nogensinde ved et uheld sletter en vigtig fil: Windows-filsystemet sletter faktisk ikke filer. Indtil de er overskrevet, kan slettede filer gendannes. . Dette tager ikke kun unødvendig lagerplads, men gør det også vanskeligt at identificere et bestemt gendannelsespunkt for en fil.
- Disse løsninger kan også bruge en fil som basisenhed til styring. Men versionskontrolsystemer fungerer typisk på katalogniveau (inklusive undermapper). En VCS gør det nemt at se nøjagtigt, hvilken fil der ændrede sig, og hvornår.
- Disse samme løsninger giver dig heller ikke muligheden for at mærke iterationer i de fleste tilfælde. Dette gør det ligeledes vanskeligt at finde filen med teksten, du overskrev på et tidspunkt, før du indså, hvor genial den var.
- Versionering med operativsystemer og applikationer som Word introducerer også enkelt mislykkelsespunkter. For Word er det selve filen (hvis den bliver beskadiget, skal du også sige farvel til alle dine tidligere kopier). For operativsystemet er det harddisken Sådan repareres en død harddisk til gendannelse af data Sådan repareres en død harddisk til gendannelse af data Hvis din harddisk er mislykket, hjælper denne guide dig med harddiskens reparation og data opsving. , medmindre du er en ansvarlig bruger og sikkerhedskopierer regelmæssigt Windows Backup and Restore Guide Windows Backup and Restore Guide Katastrofer sker. Medmindre du er villig til at miste dine data, har du brug for en god Windows-backup-rutine. Vi viser dig, hvordan du forbereder sikkerhedskopier og gendanner dem. .
- Arten af webbaserede tjenester betyder, at dine ældre revisioner muligvis er derude i skyen. Hvis du f.eks. Forsøger at se historien til en Dropbox-fil i Linux (som vist på billedet herunder), bliver du omdirigeret til webstedet.
Hvis nogle af eller alle disse problemer får dig til at ønske noget mere, så tjek det næste afsnit, hvor vi løser dem med git.
Versionskontrol med Git
I de følgende afsnit gennemgår vi hvert af disse trin til et meget vigtigt projekt: netop denne artikel. Vi gør det ved hjælp af kommandolinjeversionen af Git. At kende terminalkommandoerne vil gøre det let nok at finde deres GUI-ækvivalenter, og det vil garantere, at du kan bruge det på enhver platform.
1. Opsætning af Git-arkivet
Hvis din maskine ikke har git installeret (Mac'er gør det, ligesom nogle Linux-distributioner), kan du enten gribe Windows-installationsprogrammet fra projektets downloadside eller installere på Linux med en kommando (specifik for din distro), såsom:
sudo apt installere git
Den næste ting, vi skal gøre, er at oprette et git repository, som kun er en mappe, der holder dit projekt. For at drage fordel af Git-versionering skal du initialisere mappen som et arkiv. Du kan gøre dette på en kommandolinie med følgende kommando:
git init
Du kan muligvis ikke se noget, når dette er afsluttet, men aktivere “Vis skjulte filer” i din filhåndtering, og du vil se, at der er en ny .git mappe (som vist på ovenstående billede). Det er her git opbevarer alle sine oplysninger, så det er ude af din måde.
2. Tilføj og forpligt din første fil
Det næste trin er at oprette noget indhold (filer) i dit projekt. Disse kan være enhver filtype, da de fleste programmeringsprojekter består af kode (tekst) og aktiver som grafik (binær) Alt hvad du behøver at vide om filformater og deres egenskaber Alt hvad du behøver at vide om filformater og deres egenskaber Vi brug ordfilen om hverandre: musik, billede, regneark, slideshow og så videre. Men hvad gør en fil alligevel til en "fil"? Lad os prøve og forstå denne grundlæggende del af computing. . Når du er oprettet, skal du gøre følgende på kommandolinjen, mens du stadig er i dit projektmappe:
git status
Det første skridt til en forpligtelse er at “scene” de nye eller opdaterede poster. Se, hvordan ovennævnte output lader dig vide, at der er “unstaged” ændringer? Du kan scene alt i dit bibliotek (rekursivt, dvs. at inkludere undermapper og deres filer) med denne kommando:
git -a .
Det “--en” flag er til “tilføje,” og perioden henviser til det aktuelle bibliotek. Det siger dybest set “tilføj alle filer til my my commit.” Nu for faktisk at forpligte dig, skal du indtaste følgende:
git commit -m "WHOOP, my first commit!"
Når du nu kontrollerer status igen, skulle der ikke være nogen ventende ændringer. For at se selve engagementet skal du kontrollere git-loggen ved hjælp af graftilstand, med notering skåret til en linje, og pyntet op for læsbarhed:
git log - alt - dekorat - online - graf
Dette vil vise dig en dejlig tidslinje for dit engagement, med den seneste øverst.
3. Opret en filial, der skal eksperimenteres
Når du arbejder, kan du måske gå i en bestemt retning og ikke vide, om det vil træne. Til dette ønsker du at oprette en gren med følgende kommando:
git branch eksperiment1 git checkout eksperiment1
Den anden kommando skifter dig til “experiment1” afdeling. Du kan skifte tilbage ved at erstatte det med “mestre.” Når du begynder at arbejde på din tekst, skal du bemærke forskellen mellem samme fil fra hver gren. Først “experiment1” gren med din nye tekst:
Sammenlign dette med originalen:
Nu efter at have arbejdet et stykke tid (sluttet med et nyt engagement), er det bedste, du kunne komme frem til “Lorem ipsum dolor sidder amet… ?” Hvad er det? Det er vrøvl, og bør straks slås fra dit projekt. Du kan papirkurbe din gren med følgende kommando (“-D” til sletning af kraft):
git branch -D eksperiment1
Start nu en anden gren og tilføj noget intelligent sammen med nogle billeder:
git branch eksperiment2 git checkout eksperiment2 git add. git commit -m "Mere tekst, tilføjede billeder"
4. Flet dine ændringer
Endelig, når du er tilfreds med ændringerne i din nuværende gren, vil den følgende kommando flette dem med “mestre” afdeling. Forudsat at du ikke har gjort en masse hopping frem og tilbage mellem de to, vil dette resultere i, at alle dine nye ændringer bliver anvendt, og en ny revision oprettet. Følgende på kommandolinjen kombinerer dem for dig:
git merge experiment2
Nu har du en revision, der kombinerer den nyeste i “mestre” med det seneste i “experiment2.” På dette tidspunkt kan du slippe af med eksperimentet (det var trods alt vellykket) med følgende:
git branch -d eksperiment2
Bemærk, at du kun mister nogen af de trinvise ændringer, du har foretaget inden for denne gren, hvis du gør det.
5. Skub til et sikkert sted
Til sidst er Git en distribueret system, hvilket betyder, at du kan have flere kopier af dit lager og synkronisere dem. Opret f.eks. Et nyt depot på en server, som du kan SSH til Sådan fjernstyres en Linux-server med SSH Sådan fjernstyres en Linux-server med SSH SSH er meget funktionel, hvorfor det er en go-to til fjernserveradministration. Lær, hvordan du eksternt administrerer en Linux-server via SSH, fra forbindelse, til installation af software og filoverførsler. med denne kommando:
git init --bare
Det “-bar” flag opsætter det som en slags skrivebeskyttet depot, idet du ikke kan ændre filerne direkte. Derefter kan du indstille det som en ekstern kopi af dit lokale arkiv med følgende (den første kommando sikrer, at nye lokale grene oprettes eksternt):
git config push.default matchende git remote tilføj central ssh: // [brugernavn] @ [URL] / path / to / repository git push - set-upstream central master
Opsætning til versionering og sikkerhedskopiering med Git
Med ovenstående opsætning kan du følge en simpel proces for at holde alt det arbejde, du udfører på et projekt, ikke kun versioneret, men også sikkerhedskopieret.
- Foretag ændringer i projektfiler.
- Problem “git tilføje .” at tilføje alle ændringer til en forpligtelse.
- Problem “git commit -m [nogle meddelelser]” at forpligte ændringerne til din lokal repository. Gentag fra starten.
- Problem “git push” at foretage ændringerne i et fjernlager med regelmæssige intervaller.
- Problem “git klon ssh: // [brugernavn] @ [URL] / sti / til / depot” fra en anden maskine til
Er fordelene ved versionskontrolsystemer noget, der interesserer dig? Eller er ikke-udviklings-backup-applikationer nok til dine behov? Fortæl os dine tanker i kommentarerne herunder!