Indholdsfortegnelse
Ændringerne i Git De er ikke de samme som i andre styrings- og versionskontrolsystemer, da det ved kun at gemme det, der virkelig har ændret sig, reducerer størrelsen på de filer, der genereres til kontrol, og giver det også større smidighed.Det aspekt, der styrer alt dette, er indeks hvem har ansvaret for at vide hvem, hvad og hvornår af alle de foretagne ændringer, det er derfor efter at have tilføjet de forskellige aspekter til vores indeks af afdeling opkaldet foretages begå.
Hvad er en forpligtelse?I Git Vi ved, at for at tilføje en ændring skal vi foretage en begå af det samme, når det er tilføjet til depotindekset. Hvad er imidlertid en begå Nemlig? Dette spørgsmål er ikke altid stillet til os selv siden den måde vi Git håndterer dette er ret klart, men a begå er måden det Git registrerer den aktuelle tilstand for depotindekset og gemmer det i det tilsvarende objekt på denne måde hver begå den er afledt af den forrige og dermed kan strukturen, der ikke undergår ændringer, genbruges.
Den ressourceforvaltning, der gør dette så hurtigt, skyldes sammenligninger på tværs SHA1 Derfor, hvis elementerne i indekset har den samme hash, fortsætter de ikke med at fordybe sig i deres ændringer, da de er identiske, og derfor tages kun de filer, der virkelig har ændret sig.
Den måde, hvorpå begår giver os mulighed for at etablere hierarkiske strukturer, der giver sikkerhed for at opnå oprindelsen af alle registrerede ændringer, så hvis vi følger den bedste praksis for Git Vi vil aldrig gå tabt, takket være de unikke identifikatorer kan vi også være sikre på, at hvis nogen funktionalitet har skabt et problem, kan det findes på det nøjagtige sted, hvor det blev inkluderet.
Vi kommenterede hvordan begår have en hash i SHA1 hvormed de kan identificeres, viser det sig, at denne hash også gør dem unikke og ikke kan gentages, det vil sige, hvis vi har en begå og i et andet depot findes den samme hash, så vi kan vide, at den er den samme begå.
På grund af dette begå betragtes også atomar, det vil sige som en enkelt enhed uafhængigt, der gemmer tilstanden for mange mapper eller filer, med dette kan vi henvise til begå som en enhed i vores depot og dermed kunne behandle hver enkelt som et element, der, selvom det er relateret til det forrige, er unikt.
Selvom hash SHA1 fungerer som en unik identifikator for begå, dens struktur af 40 alfanumeriske tegn kan repræsentere et problem, når vi vil kommunikere med en anden udvikler og forklare det begå Vi taler.
Relative navneFor at løse dette problem kan vi etablere relative navne og lettere at huske for begårDisse erstatter ikke hash, men de fungerer snarere som en slags etiket, der giver os mulighed for at identificere dem på en mere menneskelig måde.
At tale om det sidste begå af afdeling kan vi simpelthen referere til HOVED, da dette altid vil referere til det nyeste og det nyeste begåMen da vi ikke altid vil kræve dette, er det nok, at vi bruger de første tegn i hash, selvom det ikke altid vil være unikt, så ved at tilføje flere tegn opnår vi den tilsvarende unikhed.
Lad os så se kommandoen, som vi skal bruge for at opnå sidstnævnte:
git log -1 --pretty = oneline identifier commit
Nu vil vi se i det følgende billede, hvordan vi identificerer a begå i vores testlager, til dette vil vi i første omgang finde, hvilken der er SHA1 af HOVED og så vil vi kalde det ved dets første tegn, lad os se:
Med det foregående eksempel har vi opdaget et værktøj til Git der kan være meget nyttig og er log kommando, dette er meget kraftfuldt, da det giver os mulighed for at lokalisere de forskellige begå på en hurtig og præcis måde, men den har mange parametre og konfigurationer, der kan være vanskelige at huske i første omgang, men for at bruge den behøver vi ikke at lære dem alle, vi kan gå lidt efter lidt, mens vi vænner os til dens brug.
Hvis vi vil se forpligtelseshistorikken, skal du blot gøre følgende:
git log filialnavn
Med dette vil vi opnå detaljerede historikoplysninger af vores afdeling og deres begårLad os se, hvordan det ser ud i vores konsol i det lager af tests, vi har:
Vi bemærker derefter, hvordan begår er organiseret fra den nyeste til den ældste, giver det os mulighed for lidt at se den historiske linje over de ændringer, der er lidt afdeling valgt til at se den historiske log.
Da arbejdet på konsollen nogle gange er lidt tungt, selvom det er meget nødvendigt, Git tilbyder os et værktøj, der giver os mulighed for at gennemgå historien om begår grafisk og er gitk er ikke en underkommando af Git som f.eks. log, som vi allerede har set, men det er en uafhængig kommando og giver os mulighed for at få adgang til en større detalje af grenen og dens historie.
For at bruge det skal vi simpelthen udføre følgende kommando:
gitk navnBranch
Lad os se, hvordan udførelsen af det ser ud i konsollen:
Selvom det kan se ud til, at der ikke er sket noget, får vi snart et vindue med den ønskede grafik til afdeling specificeret, som vi kan se på følgende skærmbillede:
FORSTØRRE
Vi kan bemærke, at vi har en meget større detalje ud over forbedringen i visualiseringen.Ref Y Symrefs tilhører referencer Y symbolske referencer henholdsvis den første svarer til en identifikator SHA1 af et objekt inden for objektrammen i vores lager, på den anden side svarer det andet indirekte til et objekt, på trods af dets navn er det også en reference.
Denne struktur af referencer er meget vigtig at kende, da den giver os mulighed for at forstå organisationen af vores bibliotek med begår Y grene inden for Git, som er gemt i biblioteket .git / ref.
Oprettelse af en symbolsk referenceHvis vi eksplicit vil oprette en symbolsk reference bare brug kommandoen git symbolsk-ref, og selvom det er muligt at bruge navne som HOVED for disse referencer er det ikke tilrådeligt, da de i sidste ende kan føre os til en forvirring, der kan forårsage skade på vores lager.
Lad os endelig se, hvordan udførelsen af denne kommando ser ud, når vi anvender den på vores testlager:
Et andet interessant aspekt af begår, er, at vi kan arbejde med relative navneDette gør det meget enkelt at finde forpligtelsesområder, f.eks. Hvis vi vil finde det, der findes mellem anmeldelserne af en bestemt periode, kan vi gøre det.
For at opnå dette skal vi kun bruge filialens navn plus symbolet ^ og revisionsnummeret. For eksempel mester ^ hvor vi refererer til den næstsidste ændring foretaget i afdeling mestre.
LagringshistorikPå denne måde vil vi være i stand til at bevæge os igennem hele vores depot, som giver os mulighed for at få adgang til i forhold til begår der har gjort det muligt for os at have den nuværende, hvis vi følger strukturen mester 2 kommer til at tage os med til den anden far til begå, det vil sige den, der har givet liv parallelt, også med ~ vi kan få adgang til faderen til faderen til vores nuværende forpligtelse, det vil sige bedstefaren, for at sige det på en eller anden måde i slægtsforskning.
Et eksempel kan være mester 2 ~ 3 For at henvise til historiske ændringer i vores lager, hvis vi ønsker at få navnet på en relativ forpligtelse, skal vi blot bruge følgende kommando:
git rev-parse RelativeName
Dette vil returnere SHA1 af begå som vi ankom til. Lad os se i det følgende billede, hvordan vi kan få navnet på den aktuelle commit fra master og med mester ~ navnet på den første forælder til den samme, hvem der ville være begå hvorfra vi starter:
Vi lagde da mærke til, hvordan vi kunne få to SHA1 anderledes og gyldig i vores lager, kun ved hjælp af relative navne.
Med dette afslutter vi denne vejledning, vi har introduceret nye begreber om, hvad begår inden for GitDette giver os mulighed for bedre at forstå strukturerne i vores lagre, med dette vil organisationen virke mere logisk, og dermed kan vi være meget mere effektive, når vi håndterer ændringer inden for vores kode. Måden det Git styring af forskellene gør det så specielt, og det er derfor, det er blevet en af de førende versionledere af nutidens teknologi.Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt