Mis on pea Gitis?

Mõnikord näete Giti dokumentatsiooni viidates millelegi HEAD-ile. Näiteks haru peaks olema täielikult integreeritud HEAD-i. Kuid mis täpselt on Git HEAD?

Selles artiklis saame Git HEAD-ist rohkem teada, kuid enne seda võtame lihtsalt kokku, mis Git on ja milleks seda kasutatakse. Git on hajutatud kontrolli tööriist, mida kasutavad mitte ainult tootejuhid ja arendajad, vaid ka andmeteadlased, et hallata programmi lähtekoodi arendamist ja selle ajalugu.

PEA osuti Gitil

Git hoiab viitamisel muutujat, mida nimetatakse HEAD-i jaoks hiljutise väljamakseharu uusimale pühendumisele. Võite ette kujutada HEAD kui “praegust pühendunud haru”. Ja me võime mõelda osutina, kuna selle muutuja eesmärk on osutada hoidlas asuvale kindlale kohustusele või tegutseda viitena sellele. Ütleme, et teeme repos uue kohustuse, siis osuti või HEAD hakkab liikuma või oma positsiooni muutma, et osutada uuele kohustusele.

HEAD osutab kogu hoidlas oleva haru alguspunktile. Seda võib pidada hoidla viimaseks olekuks või viimati kontrollitud punktiks. Teisisõnu, PEA on osutaja järgmise kohustuse vanemale või sellele, kus järgmine kohustus aset leiab, kuna just see lõpetas repotehingu.

Hea analoogia oleks plaadimängija ja taasesituse ning salvestamise klahvid pealkirjaga HEAD. Kui heli salvestamine algab, liigub lint edasi, liikudes sellest pea poole, salvestades sellele. Stopp-nupp peatab salvestuse, osutades endiselt viimati salvestatud punktile. Kui salvestuspea peatub, jätkatakse salvestamist, kui uuesti vajutada Record. Kui me ringi liigume, liigub pea osuti erinevatesse kohtadesse, kui aga uuesti nuppu Record vajutatakse, algab salvestamine punktist, kuhu pea osutas, kui nuppu Record vajutati.

Git-is saate kasutada allolevat käsku, et näha, mida osutab HEAD-kursor.

kass .git / PEA:

  • See näitab .git / HEAD sisu, nagu allpool näidatud
  • ref: refs / heads / master
  • Põhimõtteliselt on see sümboolne viide viimasele pühendunud harule, mille te välja kontrollisite, ja osutab tegelikult praeguse haru alguses kohustusele.

Kui teeme uue, nagu allpool näidatud, kohustuse, lisatakse see enne praegust HEAD, mis paneb Giti automaatselt suunama HEADi uuele kohustusele.

git diff HEAD..HEAD ~ 3: Täpsemalt, HEAD on liikuv osuti, mis võiks viidata praegusele harule, või ei saanud, aga see viitab alati “praegusele pühendumisele”. See (praegune kohustus) on kohustus, millele “git įsipareig” on üles ehitatud ja mida sageli võrreldakse “git diff - cached” ja “git status”.

git log @: 'HEAD' sisestamine võtab aega, eriti kui on otsetee '@'. Sümbol „@” on valitud seetõttu, et see järgib loomulikult süntaksit (nt (u)), kuid peale selle pole viidet ega toimingut ning kui neid pole, siis „HEAD 'võib eeldada, et @.

1. Eemaldatud pea

On usutav, et HEAD osutab konkreetsele muudatusele, mida pole haru nimega veel seotud. See on olukord, mida nimetatakse eraldatud HEADiks ja see juhtub, kui keegi kontrollib muud kui (kohalikku) haru, ütleme konkreetset kohustust, kaugharu või silti. Eraldatud HEAD-i saab seetõttu kasutada maksekohustuse kontrollimiseks, mis ei osuta ühegi olemasoleva haru lähtepunktile, või luua uhiuue kohustuse, millele teadaolev haru tingimata ei viita.

Võtame näite, kus kontrollime b-d ühel või teisel viisil

  • git kassasse peremees ^#või
  • git checkout v3.1

Pange tähele, et ükskõik, millist kassast käsku kasutatakse, viitab HEAD nüüd kohustusele b. Seda b staatust nimetatakse eraldatud HEAD olekuks.

Vaatame allpool toodud näiteid, et näha, mis juhtub, kui luuakse kohustus:

git checkout -b foo: Kõigepealt luuakse uus haru nimega foo, millele viidatakse sidusettevõttele f, mis omakorda värskendab HEAD-i osutama haru foo-le. See tähendab, et see ei ole enam eraldatud HEAD-olekus.

git branch foo: Sellega luuakse uus haru nimega foo, millele viidatakse Pühenduda f, kuid HEAD jäetakse lahti.

git tag foo: ka see loob uue sildi nimega foo, millele viidatakse Pühendada f, kuid HEAD jäetakse lahti.

Oletame, et olete vahetanud muule positsioonile kui pühenduma f, siis tuleb kõigepealt taastada objekti nimi (tavaliselt tehakse see käsu git reflog abil) ja pärast seda luuakse sellele viide.

Kahe viimase viidatud HEAD-i toimetuleku teadasaamiseks kasutage ühte järgmistest käskudest:

  • git log -g -2 PEA #või
  • git reflog -2 PEA

2. ORIG_HEAD

On veel üks selline pea, mida peate teadma. Käsud “ühendada” või “tõmmata” jätsid aktiivse haru originaalse otsa alati millekski ORIG_HEAD. Seda saab kasutada järgmiste käskude abil.

git lähtestamine –hard ORIG_HEAD: seda kasutades taastab kõva reset indeksifaili koos töötava puuga tagasi algsesse olekusse, lähtestades samas haru tipu sellele kohustusele, kuid see loobub kohalikest muudatustest.

git reset –merge ORIG_HEAD: Aga mis siis, kui soovite säilitada kohalikud muudatused, kuna võite kasutada ülaltoodud käsku kohalike muudatuste hoidmiseks. Lisaks seab liitmine alati „.git / ORIG_HEAD” algse oleku HEAD, nii et probleemse liitmise saab eemaldada 'git reset ORIG_HEAD' abil. Lisaks sellele seab ühendamine '.git / ORIG_HEAD' kogu aeg HEAD algsesse olekusse, et probleemne liitmine eemaldada 'git reset ORIG_HEAD' abil.

Kui teil on probleeme mitme kommenteerimisega, seadistatakse ORIG_HEAD enne mis tahes plaastrite rakendamist praeguse haru alguspunkti, kuna viga komisjonides saab seda hõlpsamini parandada.

Git HEAD eelised

  • Seda kasutatakse viitamiseks hiljuti pühendunud harule.
  • Seda saab kasutada muudatuste tegemiseks alates viimati külastatud punktist.
  • Seda saab kasutada ka ajaloo erinevatesse punktidesse liikumiseks ja sealt edasi töötamiseks.
  • Hoiab hoidla ja protsessi puhtana ja loetavalt.

Järeldus

Gitil on palju kasutusvõimalusi ja seda kasutavad laialdaselt arendajad, tootehaldurid ja andmeteadlased. Selle käsud on väga tõhusad ja võivad olla väga kasulikud. HEAD on viide viimasele kohustusele praegu väljaregistreerunud harus.

Soovitatavad artiklid

See on juhend teemal Mis on pea Gitis ?. Siin arutatakse GIT-is asuvat HEAD Pointerit, mis sisaldab üksikelamu HEAD ja ORIG_HEAD koos Git HEADi eelistega. Lisateabe saamiseks võite vaadata ka järgmisi artikleid -

  1. Mis on Git Fetch?
  2. Git Too ja Git Pull
  3. Mis on Git Branch?
  4. Git terminoloogia
  5. GIT versioonikontrollisüsteem
  6. Git Push
  7. Giti elutsükli kolm etappi koos töövooga
  8. Kuidas kasutada GIT Cherry-pick koos näitega?

Kategooria: