Utilizarea comitetelor în Git

Cuprins
Schimbările din Git Nu sunt la fel ca în alte sisteme de management și control de versiune, deoarece stocând doar ceea ce s-a schimbat cu adevărat, reduce dimensiunea fișierelor generate pentru control și îi conferă, de asemenea, o agilitate mai mare.
Aspectul care controlează toate acestea este index cine are responsabilitatea de a ști cine, ce și când dintre toate modificările făcute, de aceea după adăugarea diferitelor aspecte la noi index de ramură se face apelul comite.
Ce este un commit?În Git Știm că pentru a adăuga o modificare trebuie să facem o comite de același lucru odată ce a fost adăugat la indexul depozitului. Cu toate acestea, ce este un comite exact? Această întrebare nu este întotdeauna pusă nouă înșine de la felul în care noi Git gestionează acest lucru este destul de clar, dar a comite este modul în care Git înregistrează starea curentă a indexului depozitului și îl stochează în obiectul corespunzător, în acest fel fiecare comite este derivat din precedent și astfel structura care nu suferă modificări poate fi refolosită.
Gestionarea resurselor care face acest lucru atât de rapid se datorează comparațiilor făcute între ele SHA1 Prin urmare, dacă elementele din index au același hash, ele nu continuă să se adâncească în modificările lor, deoarece sunt identice și, astfel, sunt preluate doar fișierele care au fost modificate.
Modul în care comite ne permite să stabilim structuri ierarhice care oferă certitudinea obținerii originii tuturor modificărilor înregistrate, deci dacă urmăm cele mai bune practici ale Git Nu ne vom pierde niciodată, datorită identificatorilor unici, putem fi siguri că, dacă orice funcționalitate a creat o problemă, aceasta poate fi găsită în punctul exact în care a fost inclusă.
Am comentat cum comite au un hash în SHA1 cu care pot fi identificați, se dovedește că acest hash îi face, de asemenea, unici și irepetabili, adică dacă avem un comite și într-un alt depozit se găsește același hash, astfel încât să putem ști că este același comite.
Din această cauză comite este, de asemenea, considerat atomic, adică, ca o singură unitate independent care stochează starea multor directoare sau fișiere, cu aceasta ne putem referi la comite ca o unitate din cadrul depozitului nostru și astfel să putem trata fiecare ca un element care, deși este legat de cel precedent, este unic.
Deși hashul SHA1 servește ca un identificator unic pentru comite, structura sa de 40 de caractere alfanumerice poate reprezenta o problemă atunci când vrem să comunicăm cu un alt dezvoltator și să explicăm asta comite Vorbim.
Numele relativePentru a rezolva această problemă putem stabili nume relative și mai ușor de reținut pentru comiteAcestea nu înlocuiesc hash-ul, ci mai degrabă funcționează ca un fel de etichetă care ne permite să le identificăm într-un mod mai uman.
Să vorbim despre ultimul comite din ramură ne putem referi pur și simplu la CAP, deoarece acest lucru se va referi întotdeauna la cele mai recente și la cele mai recente comiteCu toate acestea, deoarece nu vom solicita întotdeauna acest lucru, este suficient să folosim primele caractere ale hash, deși nu va fi întotdeauna unic, așa că prin adăugarea mai multor caractere vom realiza unicitatea corespunzătoare.
Să vedem atunci comanda pe care trebuie să o folosim pentru a o realiza pe aceasta din urmă:
git log -1 --pretty = confirmarea identificatorului on-line

Acum vom vedea în imaginea următoare cum identificăm un comite în depozitul nostru de testare, pentru aceasta vom localiza inițial care este SHA1 din CAP și apoi o vom numi după primele sale caractere, să vedem:

Cu exemplul anterior am descoperit un instrument pentru Git care poate fi foarte util și este comanda log, acest lucru este foarte puternic, deoarece ne permite să localizăm diferitele comite într-un mod rapid și precis, totuși are mulți parametri și configurații care pot fi dificil de memorat în primă instanță, totuși pentru a-l folosi nu trebuie să-i învățăm pe toți, putem merge puțin câte puțin în timp ce ne obișnuim cu utilizare.
Dacă vrem să vedem istoricul comiterilor, faceți următoarele:
git log nume de ramură

Cu aceasta vom obține informații detaliate despre istorie al nostru ramură si al lor comiteSă vedem cum arată în consola noastră în depozitul de teste pe care îl avem:

Observăm apoi cum comite sunt organizate de la cele mai recente la cele mai vechi, acest lucru ne permite să vedem puțin linia istorică a schimbărilor suferite de ramură ales pentru a vizualiza jurnalul istoric.
Deoarece lucrul la consolă este uneori cam greu, deși este foarte necesar, Git ne oferă un instrument care ne permite să trecem în revistă istoria comite grafic și este gitk nu este o subcomandă a Git ca de exemplu jurnalul pe care l-am văzut deja, dar este o comandă independentă și ne permite să accesăm un detaliu mai mare al sucursalei și al istoriei sale.
Pentru a-l utiliza, trebuie pur și simplu să executăm următoarea comandă:
gitk nameBranch

Să vedem cum arată execuția acestuia în consolă:

Deși poate părea că nu s-a întâmplat nimic, în scurt timp vom primi o fereastră cu imaginea solicitată pentru ramură specificat așa cum putem vedea în următoarea captură de ecran:

MARI

Putem observa că avem un detaliu mult mai mare, pe lângă îmbunătățirea vizualizării sale.
Ref Da Symrefs apartine referințe Da referințe simbolice respectiv, primul corespunde unui identificator SHA1 a unui obiect din cadrul obiectului din depozitul nostru, pe de altă parte, al doilea corespunde indirect unui obiect, în ciuda numelui său, este și o referință.
Această structură de referințe este foarte importantă de știut, deoarece ne va permite să înțelegem organizarea directorului nostru de comite Da ramuri în Git, care sunt stocate în director .git / ref.
Crearea unei referințe simboliceDacă vrem să creăm în mod explicit un referință simbolică folosiți doar comanda git simbolic-ref, și deși este fezabil să folosiți nume ca CAP pentru aceste referințe nu este recomandabil, întrucât, în cele din urmă, ele ne pot duce la o confuzie care poate provoca daune depozitului nostru.
În cele din urmă, să vedem cum arată executarea acestei comenzi atunci când o aplicăm în depozitul nostru de testare:

Un alt aspect interesant al comite, este cu care putem lucra nume relativeAcest lucru face ca găsirea intervalelor de comitere să fie foarte simplă, de exemplu, dacă vrem să localizăm ceea ce există între recenziile unei anumite perioade, o putem face.
Pentru a realiza acest lucru, trebuie doar să folosim numele ramurii plus simbolul ^ și numărul revizuirii. De exemplu stăpân ^ unde ne referim la penultima schimbare făcută în ramură maestru.
Istoricul depozituluiÎn acest fel vom putea să ne deplasăm prin întreaga istorie a depozitului nostru, ceea ce ne oferă posibilitatea de a accesa relativ la comite care ne-au făcut posibil să o avem pe cea actuală, dacă urmăm structura stăpân 2 ne va duce la al doilea tată al comite, adică cel care a dat viață în paralel, tot cu ~ îl putem accesa pe tatăl tatălui actualului nostru angajament, adică al bunicului, pentru a-l spune într-un fel în genealogie.
Un exemplu poate fi stăpân 2 ~ 3 Pentru a ne referi la modificările istorice din depozitul nostru, dacă dorim să obținem numele unui commit relativ, trebuie pur și simplu să folosim următoarea comandă:
git rev-parse RelativeName

Aceasta va reveni la SHA1 din comite la care am ajuns. Să vedem în imaginea următoare cum putem obține numele commitului curent de la master și cu stăpân ~ numele primului părinte al aceluiași care ar fi comite de la care pornim:

Am observat atunci cum am reușit să obținem două SHA1 diferite și valabile în depozitul nostru, folosind doar nume relative.
Cu aceasta încheiem acest tutorial, am introdus noi concepte despre ceea ce comite în GitAcest lucru ne oferă posibilitatea de a înțelege mai bine structurile depozitelor noastre, cu aceasta organizația va părea mai logică și astfel putem fi mult mai eficienți atunci când gestionăm modificările din codul nostru. Modul în care Git gestionarea diferențelor îl face atât de special și de aceea a devenit unul dintre principalii manageri de versiuni ai tehnologiei actuale.V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv
wave wave wave wave wave