Administrer din filversjonering som en programmerer med Git
Hvis du noen gang har jobbet med kolleger på et dokument, vet du denne smerten: noen tar det første passet (dokument.doc), og deretter e-post det til alle. Den neste personen gjør det samme, som gjør det tredje, hver takker en revisjon (document_rev3.doc) til filens navn. Lederen liker hva hun ser og merker det som komplett (document_final.doc) ... til siste øyeblikk endringer kommer sammen (document_final_Aarons endringer_reviewed_by_Bob_now_really_final.doc).
Forestill deg forandringer som dette i dusinvis av kildekodefiler. Programmerer opprettet versjonskontrollsystemer (VCS) for å løse dette problemet. De er litt tekniske i naturen, men kan også være nyttige for strømbrukerne. La oss se på grunnleggende versjonskontroll ved hjelp av toppsystemet i dag, Git.
Oversikt over Versjonskontroll i bruk
Hovedformålet med VCS er å fange versjoner (også kalt revisjoner) av en fil over tid. Dette betyr ikke å stole på råmetoder som beskrevet ovenfor. I disse systemene, når du får tilgang “dokument.doc” du jobber som standard på den nyeste versjonen. Men du kan også gå tilbake til filens historie og hente tidligere versjoner. Systemer bygget spesielt for å administrere filversjoner begynte i programvareutvikling, men har gjort seg rede til mer “mainstream” applikasjoner også.
Utviklingen av Versjonskontroll i Software Development
Versjonskontrollapplikasjoner opprinnelig oppsto som en måte å forhindre programmerere på å bryte hverandres kode. De første systemene tillot bare brukere å låse filer fra andre endringer, mens andre generasjons systemer (for eksempel Subversion. Slik styrer WordPress-versjoner ved bruk av Subversion [Linux]. Slik styrer WordPress-versjoner ved bruk av Subversion [Linux] De fleste av dere vet sikkert at WordPress driver en stor mengde nettsteder som vi ser på hver dag. Med den store brukerbasen og støtten kan du gjøre mange flotte ting med ... Les mer) lagt til fullprosjekontroll fra et sentralt lager.
Mens disse andre gen-systemene fortsatt er mye brukt, migrerer industrien seg mot tredje generasjons systemer. Hovedkarakteristikken for disse systemene er at de er distribuert, noe som betyr at det ikke er noe sentralt lagringssted. I stedet har hver bruker sin egen fulle kopi av depotet (inkludert alle tidligere revisjoner). Men eventuelle endringer (selv fulle revisjoner) er “lokal” til han “skyver” dem til et annet depot. Denne brukeren kan da trekke en klone for å gjøre endringer og gjenta prosessen.
Nåværende versjonskontroll for ikke-programmerere
Evnen til å fange flere versjoner av samme sak er også en vanlig funksjon for gjennomsnittlige brukere også ikke bare for kodere: Toppversjonskontrollsystemer for forfattere, ikke bare for kodere: Toppversjonskontrollsystemer for forfattere Nevnelse av versjonskontroll eller revisjonskontroll gjør at det virker som noe for geeks. Du vil bli overrasket over at versjonskontrollsystemene har sin plass ikke bare i akademisk skriving, men også i ... Les mer. Med tilgang til billigere lagring, både på den lokale maskinen og via brukervennlige skygtjenester, har brukerne nå muligheten til å spore historien til filene sine. Generelle programmer gjør dette på en rekke måter.
Operativsystemer kan fange opp en historie med filer eller mapper Den Ultimate Windows 10 Data Backup Guide Den ultimate Windows 10 Data Backup Guide Vi har oppsummert alle backup, gjenopprett, gjenoppretting og reparasjon alternativ vi kunne finne på Windows 10. Bruk våre enkle tips og aldri fortvil over tapte data igjen! Les mer . Dette kan skje automatisk hver gang en fil er lagret, eller på vanlig plan. Noen desktop applikasjoner lar deg også fange versjoner eller øyeblikksbilder av filer. For eksempel gir LibreOffice “Lagre versjon” funksjonen (som vist i det øverste bildet nedenfor) som lar deg lagre flere versjoner av dokumentet i en fil. Til slutt vil web / sky-applikasjoner som Google Disk, ownCloud osv. Også forbli overføringer av en fil eller et dokument (som vist for Google Dokumenter i nedre bilde nedenfor), enten bak kulissene eller ved din ekspreskommando.
Hvorfor bruk programmerings-sentrisk versjonskontroll deretter?
Siden alle disse alternativene på operativsystem eller programnivå allerede eksisterer, hvorfor bry deg med disse nerdy programmeringsverktøyene? Det er et par ulemper med ovennevnte metoder, inkludert:
- Noen operativsystemer vil lagre hver enkelt tweak du lager til en fil i en ny versjon Slå tilbake tid: 4 Verktøy og tips for å gjenopprette slettede filer i Windows Slå tilbake tid: 4 Verktøy og tips for å gjenopprette slettede filer i Windows En av Windows ' største feil kan være din redning, bør du noen gang ved et uhell slette en viktig fil: Windows-filsystemet sletter ikke filer faktisk. Inntil de blir overskrevet, kan slettede filer gjenopprettes. Les mer . Dette vil ikke bare ta opp unødvendig lagring, men gjør det også vanskelig å identifisere et bestemt gjenopprettingspunkt for en fil.
- Disse løsningene kan også bruke en fil som grunnleggende enhet for å administrere. Men versjonskontrollsystemer fungerer vanligvis på katalognivået (inkludert underkataloger). En VCS gjør det enkelt å se nøyaktig hvilken fil som er endret og når.
- Disse samme løsningene gir deg heller ikke muligheten til å merke iterasjonene i de fleste tilfeller. Dette gjør det også vanskelig å finne filen med passering av tekst du overskrev på et tidspunkt før du skjønte hvor strålende det var.
- Versjonering av operativsystemer og applikasjoner som Word introduserer også enkelte punkter av feil. For Word er det selve filen (hvis det blir ødelagt, si farvel til alle tidligere kopier). For operativsystemet er det harddisken Slik diagnostiserer og reparerer en død harddisk for å gjenopprette data Slik diagnostiserer og reparerer du en død harddisk for å gjenopprette data For flere år siden opplevde jeg en harddiskfeil. Jeg var på jobb når min laptop plutselig begynte å handle spesielt rart. Om lag en halv time senere svarte harddisken ikke hørbart og den bærbare ... Les mer, med mindre du er en ansvarlig bruker og sikkerhetskopierer regelmessig. Windows Sikkerhetskopierings- og gjenopprettingsguiden Windows Sikkerhetskopierings- og gjenopprettingsguider skjer. Med mindre du er villig til å miste data, trenger du en god Windows-sikkerhetskopieringsrutine. Vi viser deg hvordan du klargjør sikkerhetskopier og gjenoppretter dem. Les mer .
- Naturen til webbaserte tjenester betyr at de eldre revisjonene dine kan være der ute i skyen. Hvis du for eksempel prøver å se historikken til en Dropbox-fil på Linux (som vist på bildet nedenfor), blir du omdirigert til nettstedet.
Hvis noen eller alle disse problemene gjør at du vil ha noe mer, sjekk ut det neste avsnittet der vi løser dem Git.
Versjonskontroll med Git
I de følgende avsnittene går vi gjennom hvert av disse trinnene for et svært viktig prosjekt: denne artikkelen. Vi gjør det ved å bruke kommandolinjeversjonen av Git. Å vite terminalkommandoene gjør det enkelt å finne sine GUI-ekvivalenter, og det vil garantere at du kan bruke det på alle plattformer.
1. Sette opp Git Repository
Hvis maskinen ikke har git installert (Macs gjør, som noen Linux-distribusjoner), kan du enten ta Windows installasjonsprogrammet fra prosjektets nedlastingsside eller installere på Linux med en kommando (spesifikk for distroen din), for eksempel:
sudo apt install git
Den neste tingen vi trenger å gjøre er å sette opp en git oppbevaringssted, som bare er en mappe som holder prosjektet ditt. For å dra nytte av Git-versjonering, må du initial mappen som et lager. Du kan gjøre dette på en kommandolinje med følgende kommando:
git init
Du kan ikke se noe når dette er fullført, men aktivere “vis skjulte filer” alternativet i filbehandleren din, og du vil se at det er nytt .git mappe (som vist i bildet ovenfor). Dette er hvor git holder all sin info så det er ute av veien.
2. Legg til og legg inn din første fil
Det neste trinnet er å lage noe innhold (filer) i prosjektet ditt. Disse kan være en hvilken som helst type fil, da de fleste programmeringsprosjekter består av kode (tekst) og ressurser som grafikk (binær) Alt du trenger å vite om filformater og deres egenskaper Alt du trenger å vite om filformater og deres egenskaper Vi bruk ordfilen utveksling: musikk, bilde, regneark, lysbildefremvisning og så videre. Men hva gjør en fil en "fil", uansett? La oss prøve å forstå denne grunnleggende delen av databehandling. Les mer . Når du er opprettet, gjør du følgende på kommandolinjen mens du fortsatt er i prosjektkatalogen din:
git status
Det første skrittet til en forpliktelse er å “scene” De nye eller oppdaterte elementene. Se hvordan utdataene ovenfor gir deg beskjed om at det finnes “unstaged” Endringer? Du kan arrangere alt i katalogen din (rekursivt, dvs. å inkludere undermapper og deres filer) med denne kommandoen:
git-a .
De “-en” flagget er for “Legg til,” og perioden refererer til gjeldende katalog. Det er egentlig sagt “legg til alle filer til min commit.” For å faktisk gjøre forpliktelsen, skriv inn følgende:
git commit -m "WHOOP, min første forpliktelse!"
Nå når du sjekker statusen igjen, bør det ikke vente endringer. For å se forpliktelsen, sjekk git loggen, ved hjelp av grafmodus, med notering kuttet til en linje, og dekorert for lesbarhet:
git logg --all --decorate --online --graph
Dette vil vise deg en fin tidslinje for din forpliktelse, med de nyeste på toppen.
3. Lag en gren til eksperiment
Når du jobber, vil du kanskje gå av i en bestemt retning, uten å vite om det kommer til å fungere. For dette vil du opprette en fil med følgende kommando:
git branch experiment1 git checkout eksperiment1
Den andre kommandoen bytter deg til “experiment1” gren. Du kan bytte tilbake ved å erstatte den med “herre.” Når du begynner å jobbe med teksten, merk forskjellen mellom samme fil fra hver gren. Først “experiment1” gren med din nye tekst:
Sammenlign dette med originalen:
Nå etter å ha jobbet en stund (slutter med en ny forpliktelse), er det beste du kan komme på med “Lorem ipsum dolor sit amet ... ?” Hva er det? Det er tull, og bør straks bli rammet av prosjektet ditt. Du kan søppel grenen din med følgende kommando (“-D” for kraft slette):
git grenen -D eksperiment1
Start nå en annen gren og legg til noe intelligent, sammen med noen bilder:
git branch experiment2 git checkout experiment2 git add. git commit -m "Mer tekst, lagt bilder"
4. Slett sammen dine endringer
Til slutt, når du er fornøyd med endringene i din nåværende gren, vil følgende kommando fusjonere dem med “herre” gren. Forutsatt at du ikke har gjort mye hopping frem og tilbake mellom de to, vil dette resultere i at alle dine nye endringer blir brukt, og en ny versjon opprettet. Følgende på kommandolinjen vil kombinere dem for deg:
git merge experiment2
Nå har du en revisjon som kombinerer det siste innen “herre” med det siste innen “experiment2.” På dette tidspunktet kan du bli kvitt eksperimentet (det var vellykket etter alt) med følgende:
git grenen -d eksperiment2
Vær oppmerksom på at du bare mister noen av de trinnvise endringene du har gjort innen den grenen hvis du gjør det.
5. Skyv til et trygt sted
Til slutt, Git er en distribuert system, noe som betyr at du kan ha flere kopier av ditt arkiv og synkronisere dem. For eksempel, opprett et nytt lager på en server du kan SSH til Slik fjerner du Behandle en Linux Server med SSH Slik fjerner du Behandle en Linux Server med SSH SSH er svært funksjonell, og derfor er det en go-to for ekstern serveradministrasjon. Lær hvordan du fjernstyrer en Linux-server via SSH, fra tilkobling, for å installere programvare og filoverføringer. Les mer med denne kommandoen:
git init --bare
De “-naken” flagg setter det opp som en slags skrivebeskyttet depot, fordi du ikke kan endre filene direkte. Deretter kan du sette det som en ekstern kopi av ditt lokale lager med følgende (den første kommandoen sikrer at nye lokale grener blir opprettet eksternt):
git config push.default matching git remote legg til sentral ssh: // [brukernavn] @ [URL] / path / to / repository git push - set-upstream sentral master
Konfigurer for versjon og sikkerhetskopiering med Git
Med installasjonen ovenfor kan du følge en enkel prosess for å beholde alt arbeidet du gjør på et prosjekt, ikke bare versjon, men også sikkerhetskopiert.
- Gjør endringer i prosjektfiler.
- Utgave “git add .” å legge til alle endringer i en commit.
- Utgave “git commit -m [noen melding]” å forplikte endringene til din lokal oppbevaringssted. Gjenta fra starten.
- Utgave “git push” å foreta endringene til et eksternt lager med jevne mellomrom.
- Utgave “git klone ssh: // [brukernavn] @ [URL] / sti / til / repository” fra en annen maskin til
Gjøre fordelene med versjonskontrollsystemer noe som interesserer deg? Eller er ikke-sikkerhetskopieringsprogrammene nok til dine behov? Gi oss beskjed om dine tanker i kommentarene nedenfor!
Utforsk mer om: Filbehandling.