Kaj je Head v Gitu?

Včasih vidite dokumentacijo Git, ki se nanaša na nekaj, imenovano HEAD. Na primer, podružnica mora biti popolnoma integrirana v HEAD. Toda kaj točno je Git HEAD?

V tem članku bomo spoznali več o Git HEAD, pred tem pa samo povzemamo, kaj je Git in za kaj se uporablja. Git je orodje za porazdeljeni nadzor, ki ga ne uporabljajo samo vodje izdelkov in razvijalci, temveč tudi znanstveniki s podatki za upravljanje razvoja izvorne kode programa in njegove zgodovine.

GLAVA kazalec v Gitu

Git ohranja spremenljivko za sklicevanje, imenovano HEAD na najnovejšo zavezo v zadnji veji blagajne. HEAD si lahko predstavljate kot "trenutno zavezano vejo". In lahko si mislimo kot kazalec, saj je namen te spremenljivke kazati ali delovati kot sklicevanje na določeno vsebino v skladišču. Recimo, naredimo novo zavezo v repo, potem se bo kazalec ali HEAD premaknil ali spremenil svoj položaj, da bo pokazal na novo zavezo.

HEAD vedno kaže na izhodišče sedanje podružnice v skladišču. Lahko ga predstavljamo kot zadnje stanje ali zadnjo odjavljeno točko v skladišču. Z drugimi besedami, HEAD je kazalec na nadrejeni član naredbe ali kjer se bo zgodil naslednji zagon, saj je tam repo odložil.

Dobra analogija bi bila predvajalnik zvoka in tipke za predvajanje in snemanje na njem kot GLAVA. Ko se zvok začne snemati, se kaseta premika naprej po glavi s snemanjem nanjo. Gumb Stop ustavi snemanje, medtem ko še vedno kaže na točko, ki jo je nazadnje posnel, in točka, ki jo je ustavila glava zapisa, bo nadaljevala snemanje, ko ponovno pritisnete Record. Če se premikamo okoli, se kazalec glave premakne na različna mesta, vendar, ko ponovno pritisnemo Record, začne snemati od točke, na katero je glava kazala, ko je bila pritisnjena Record.

V Git-u lahko s spodnjim ukazom vidite, kaj kaže kazalec HEAD.

mačka .git / GLAVA:

  • Prikaže vsebino .git / HEAD, kot je prikazano spodaj
  • ref: refs / glave / glavni
  • V bistvu je simbolično sklicevanje na zadnjo zavezano vejo, ki ste jo preverili, in dejansko kaže na zavezo na začetku trenutne podružnice.

Kadarkoli naredimo novo zavezo, kot je prikazano spodaj, se ta doda pred trenutnim HEAD-om, zaradi česar Git samodejno usmeri HEAD na novo potrditev.

git diff HEAD..HEAD ~ 3: Natančneje, HEAD je premikajoč se kazalec, ki bi se lahko nanašal na trenutno vejo ali pa ne bi mogel, vedno pa se nanaša na "trenutni zagon". To je (trenutna zaveza) je, da je „git obaveza“ zgrajena na vrhu in se pogosto primerja z „git diff-cached“ in „git statusom“.

git log @: Vtipkavanje "HEAD" traja dolgo, zlasti kadar je bližnjica namesto "@". Simbol "@" je izbran, ker seveda sledi sintaksi po (npr. (u)), razen tega pa ni nobenega sklica ali delovanja in kadar ni nobenega od teh, "HEAD 'lahko domnevamo namesto @.

1. Samostojna GLAVA

HEAD je verjetno, da bo pokazal na specifično spremembo, ki še ni bila povezana z imenom podružnice. To je položaj, ki mu rečemo samostojna GLAVA in zgodi se, ko kdo preveri nekaj drugega kot (lokalno) vejo, recimo določeno zavezo, oddaljeno vejo ali oznako. Zato je mogoče samostojno HEAD uporabiti za preverjanje zaveze, ki ne kaže na izhodišče nobene obstoječe veje, ali za ustvarjanje povsem nove zaveze, na katero se ne sklicuje nujno znana podružnica.

Vzemimo primer, ko na tak ali drugačen način odjavimo b

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

Upoštevajte, da se bo ne glede na to, kateri ukaz ukazov se uporablja, HEAD skliceval na b. Ta status b se imenuje kot samostojno stanje HEAD.

Oglejmo si spodnje primere, da vidimo, kaj se zgodi, ko je ustvarjen dokument:

git checkout -b foo: Najprej se ustvari nova veja z imenom foo, ki se sklicuje na ukaz f, ki nato posodobi HEAD, da kaže na vejo foo. To pomeni, da ne bo več v ločenem stanju HEAD.

git veja foo: S tem se ustvari nova veja z imenom foo, ki se imenuje, da opravi f, vendar je HEAD puščen.

git tag foo: S tem se ustvari tudi nova oznaka z imenom foo, ki se sklicuje na to, da f, vendar je HEAD puščen.

Recimo, da ste se spremenili v položaj, ki ni potrdil f, nato je treba najprej obnoviti ime predmeta (običajno ga naredite z ukazom reflog git), nato pa se nanj ustvari sklic.

Če želite izvedeti zadnji dve storitvi, na katere se nanaša HEAD, uporabite katerega koli od spodnjih ukazov:

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

2. ORIG_HEAD

Obstaja še ena vrsta glave, ki jo morate vedeti. Ukaza "združi" ali "potegni" sta vedno zapustila prvotni vrh trenutne veje v nečem, ki se imenuje ORIG_HEAD. Uporablja se lahko z naslednjimi ukazi.

git reset –hard ORIG_HEAD: S tem ponastavite trde datoteke indeksa skupaj z delovnim drevesom nazaj v prvotno stanje, hkrati pa ponastavite vrh veje na to zavezo, vendar zavrže lokalne spremembe.

git ponastavite - pomerite ORIG_HEAD: Ampak kaj, če želite obdržati lokalne spremembe, če lahko z zgornjim ukazom obdržite lokalne spremembe. problematično združitev je mogoče odstraniti z uporabo "git reset ORIG_HEAD". Poleg tega vedno združite '.git / ORIG_HEAD' v prvotno stanje HEAD, tako da odstranite problematično združitev z uporabo 'git reset ORIG_HEAD'.

Če se soočate s kakršno koli težavo z več storitvami, je ORIG_HEAD nastavljena na izhodišče trenutne veje, preden uporabite kakršne koli popravke, saj je napaka v obveznostih lažje odpravljena.

Prednosti Git HEAD-a

  • Uporablja se za opozarjanje na nedavno predano vejo.
  • Uporabite ga lahko za spremembe od zadnje obiskane točke.
  • Lahko se uporablja tudi za premikanje na različne točke v zgodovini in delo od tam.
  • Ohrani skladišče in postopek čist in berljiv.

Zaključek

Git ima veliko uporab in ga široko uporabljajo razvijalci, vodje izdelkov in znanstveniki s podatki. Njeni ukazi so zelo učinkoviti in so lahko zelo koristni. HEAD je sklic na zadnjo zavezo v trenutno odjavljeni veji.

Priporočeni članki

To je vodnik o tem, kaj je Head in Git? Tukaj razpravljamo o HEAD Pointer v Git, ki vključuje samostojno glavo in ORIG_HEAD skupaj s prednostmi Git HEAD. Če želite izvedeti več, si oglejte tudi naslednje članke -

  1. Kaj je Git Fetch?
  2. Git Fetch proti Git Pull
  3. Kaj je Git Branch?
  4. Git terminologija
  5. GIT nadzorni sistem različic
  6. Git Push
  7. Tri stopnje življenjskega cikla Git s potekom dela
  8. Kako uporabiti GIT Cherry-pick s primerom?

Kategorija: