Što je Head u Gitu?

Ponekad vidite dokumentaciju Gita koja se odnosi na nešto što se zove GLAVA. Na primjer, Podružnica bi se trebala potpuno integrirati u HEAD. Ali što je točno Git HEAD?

U ovom ćemo članku upoznati više o Git HEAD-u, ali prije toga samo ćemo sažeti što je Git i za što se koristi. Git je alat za distribuiranu kontrolu koji ne koriste samo rukovoditelji proizvoda i programeri, već i znanstvenici s podacima kako bi upravljali razvojem izvornog koda programa i njegove povijesti.

GLAVA Pointer u Gitu

Git održava varijablu za upućivanje, nazvanu HEAD prema najnovijoj obvezi u nedavnoj grani odjave. Možete zamisliti GLAVU kao "trenutno počinjenu granu". I možemo misliti kao pokazivač, jer je svrha ove varijable ukazivati ​​ili djelovati kao referenca na određenu odrednicu u spremištu. Recimo, napravimo novu obveza u repo-u, tada se pokazivač ili GLAVA pomiče ili mijenja svoj položaj kako bi ukazao na novo počinjenje.

HEAD upućuje na početnu točku sadašnje podružnice u skladištu u svakom trenutku. Može se zamisliti kao posljednje stanje ili kao posljednja odjavljena točka u skladištu. Drugim riječima, HEAD je pokazivač prema roditelju sljedeće naredbe ili gdje će se dogoditi sljedeća zapovijed jer je tamo stao repo.

Dobra analogija bili bi uređaj za reprodukciju zvuka i tipke za reprodukciju i snimanje na njemu kao GLAVA. Kad se zvuk počne snimati, vrpca se kreće naprijed i kreće se pokraj glave snimajući na nju. Tipka Stop zaustavlja snimanje, a još uvijek upućuje na točku koju je posljednji put snimio, a točka na kojoj je glava za snimanje stala je mjesto gdje će nastaviti snimanje kad se ponovno pritisne Record. Ako se krećemo, pokazivač glave pomiče se na različita mjesta, međutim, kada se ponovno pritisne Record započinje snimanje od točke na koju je glava ukazala kad je pritisnuta Record.

U Git-u možete upotrijebiti naredbu ispod da biste vidjeli što pokaže HEAD pokazivač.

mačka .git / GLAVA:

  • Prikazuje sadržaj .git / HEAD kao što je prikazano u nastavku
  • ref: refs / glave / gospodar
  • U osnovi je simbolična referenca na najnoviju počinjenu granu koju ste provjerili i učinkovito ukazuje na počinjenje na početku trenutne podružnice.

Kad god napravimo novu obvezu, kao što je prikazano u nastavku, ona se dodaje prije trenutnog HEAD-a, što Git automatski upućuje HEAD na novu obavezu.

git diff HEAD..HEAD ~ 3: Preciznije, HEAD je pomični pokazivač koji se može odnositi na trenutnu granu, ili ne može, ali uvijek se odnosi na "trenutnu zapovijed". To (trenutno počinjenje) je počinjenje „git počiniti“ izgrađeno je na vrhu, a često se uspoređuju sa „git razgraničenim“ i „git statusom“.

git log @: Unos teksta "HEAD" traje puno vremena, posebno kad je prečac umjesto toga "@". Simbol "@" je odabran jer prirodno slijedi sintaksu (npr. Adresa (u)), ali osim toga nema reference ili operacije, a kad ne postoji nijedna od njih, "GLAVA 'može se pretpostaviti umjesto @.

1. Samostojeća GLAVA

Vjerojatno će HEAD ukazati na specifičnu promjenu koja još nije bila povezana sa nazivom podružnice. To je situacija koja se naziva odvojena GLAVA i događa se kada netko provjeri nešto osim (lokalne) grane, recimo određenu odredbu, udaljenu granu ili oznaku. Odvojena HEAD može se, dakle, upotrijebiti za provjeru obveze koja nije usmjerena na početnu točku niti jedne postojeće grane ili za stvaranje potpuno nove obveze na koju se poznata grana ne mora nužno pozivati.

Uzmimo primjer gdje na jedan ili drugi način naplaćujemo b

  • git checkout master ^#or
  • git checkout v3.1

Primijetite da bez obzira na to koja se naredba za naplatu koristi, HEAD će se sada odnositi na počinjenje b. Ovaj status b naziva se odvojenim stanjem HEAD.

Pogledajmo primjere u nastavku da vidimo što se događa kada se stvori obveza:

git checkout -b foo: Prvo se stvara nova grana koja se zove foo, a koja se odnosi na počinjenje f koja zauzvrat ažurira HEAD kako bi ukazao na podnožje grane. To znači da više neće biti u odvojenom stanju GLAVE.

git grana foo: Ovo stvara novu granu pod nazivom foo, koja se odnosi na počinjenje f, ali GLAVA je ostala odvojena.

git tag foo: Ovo također stvara novu oznaku pod nazivom foo, koja se odnosi na počinjenje f, ali HEAD ostaje neraspoložena.

Pretpostavimo da ste promijenili položaj koji nije činio f, prvo se prvo mora oporaviti ime objekta (što se obično izvodi naredbom gloga reflog), a nakon toga stvara se referenca na njega.

Da biste saznali posljednja dva djela koja su upućena na HEAD, koristite bilo koju od narednih naredbi:

  • git log -g -2 GLAVA #or
  • git reflog -2 GLAVA

2. ORIG_HEAD

Postoji još jedna vrsta GLAVE o kojoj trebate znati. Naredbe "spajanje" ili "povlačenje" uvijek su ostavljale izvorni vrh trenutne grane u nečemu što se naziva ORIG_HEAD. Može se koristiti pomoću sljedećih naredbi.

git resetiraj –hard ORIG_HEAD: Upotrebom ove funkcije, tvrdo resetiranje vraća indeksnu datoteku zajedno s radnim stablom u prvobitno stanje, uz vraćanje vrha grane na taj graničnik, ali odbija lokalne promjene.

git reset - pomak ORIG_HEAD: Ali što ako želite zadržati lokalne promjene, tako da pomoću gornje naredbe zadržite lokalne promjene.n pored toga, spajanje uvijek postavlja '.git / ORIG_HEAD' u izvorno stanje HEAD, tako problematično spajanje može se ukloniti korištenjem 'git reset ORIG_HEAD'. Uz sve to, spajanje postavlja '.git / ORIG_HEAD' u prvobitno stanje HEAD u svako doba, tako da uklonite problematično spajanje pomoću 'git reset ORIG_HEAD'.

Ako se suočite s bilo kojim problemom s višestrukim zarezima, ORIG_HEAD je postavljen na početnu točku trenutne grane prije nego što primijenite zakrpe jer se pogreška u narudžbama može lakše popraviti na ovaj način.

Prednosti Git HEAD-a

  • Koristi se za ukazivanje na nedavno počinjenu granu.
  • Pomoću njega se mogu mijenjati od posljednje posjećene točke.
  • Može se koristiti i za pomicanje na različite točke povijesti i od tamo raditi.
  • Čuva da je spremište i postupak čist i čitljiv.

Zaključak

Git ima mnogo koristi i široko ga koriste programeri, menadžeri proizvoda i znanstvenici s podacima. Njegove naredbe su vrlo učinkovite i mogu biti vrlo korisne. HEAD je referenca na posljednju obvezu u trenutno odjavljenoj grani.

Preporučeni članci

Ovo je vodič o tome što je Head u Gitu ?. Ovdje smo raspravljali o HEAD Pointer u Gitu koji uključuje Odvojene glave i ORIG_HEAD zajedno s prednostima Git HEAD-a. Možete pogledati i sljedeće članke da biste saznali više -

  1. Što je Git Fetch?
  2. Git Fetch vs Git Pull
  3. Što je Git Branch?
  4. Git terminologija
  5. GIT sustav kontrole verzija
  6. Git Push
  7. Tri faze životnog ciklusa Git s tijekom rada
  8. Kako koristiti GIT Cherry-pick sa primjerom?

Kategorija: