Mikä on pää Gitissä?

Joskus näet Git-dokumentaatiossa viittaamasta päähän. Esimerkiksi haara tulisi integroida kokonaan HEAD: iin. Mutta mikä on Git HEAD?

Tässä artikkelissa opitaan tuntemaan lisää Git HEADistä, mutta ennen sitä tehdään vain yhteenveto siitä, mikä Git on ja mihin sitä käytetään. Git on hajautetun ohjauksen työkalu, jota eivät vain tuotepäälliköt ja kehittäjät, vaan myös tietotieteilijät käyttävät ohjelman lähdekoodikehityksen ja sen historian hallitsemiseksi.

Pään osoitin Gitissä

Git ylläpitää muuttujaa viittaamiseksi, jota kutsutaan HEAD viimeisimpään sitoutumiseen viimeaikaisessa kassassa. Voit kuvitella Pään ”nykyiseksi sitoutuneeksi haaraksi”. Ja voimme ajatella osoittimena, koska tämän muuttujan tarkoituksena on osoittaa tai toimia viittauksena tiettyyn toimeentuloon arkistossa. Sano, että teemme uuden sitoumuksen repossa, sitten osoitin tai HEAD aikoo siirtää tai muuttaa asemaansa osoittaaksesi uutta sitoumusta.

HEAD osoittaa arkiston nykyisen sivun lähtökohtaa jatkuvasti. Sitä voidaan pitää arkiston viimeisenä tilana tai viimeisenä uloskirjautuneena pisteenä. Toisin sanoen, PÄÄ on osoitin seuraavalle toimeksiannon vanhemmalle tai seuraavaan toimeksiantoon, koska repo jäi pois.

Hyvä analogia olisi levysoitin ja siinä olevat toisto- ja nauhoitusnäppäimet kuin pää. Kun ääni alkaa nauhoittaa, nauha siirtyy eteenpäin päätä ohittaen nauhoittamalla siihen. Pysäytyspainike pysäyttää tallennuksen osoittaen silti kohtaan, jonka se viimeksi nauhoitti, ja kohta, jossa levypää pysähtyi, on kohta, jossa se jatkaa nauhoitusta, kun Record-painiketta painetaan uudelleen. Jos liikumme, pään osoitin siirtyy eri paikkoihin, mutta kun Record-painiketta painetaan uudelleen, nauhoitus alkaa siitä kohdasta, johon pää osoitti, kun Record-painiketta painetaan.

Gitissä voit käyttää alla olevaa komentoa nähdäksesi, mitä PÄÄ-osoitin osoittaa.

kissa .git / PÄÄ:

  • Se näyttää .git / HEAD: n sisällön kuten alla
  • ref: refs / heads / master
  • Se on periaatteessa symbolinen viittaus viimeiseen sitoutuneeseen haaraan, jonka tarkistit ja joka osoittaa tosiasiallisesti sitoumukseen nykyisen sivun alussa.

Aina kun teemme uuden sitoumuksen, kuten alla on esitetty, se lisätään ennen nykyistä päätä, mikä saa Gitin osoittamaan päänsä automaattisesti uudelle sitoumukselle.

git diff HEAD..HEAD ~ 3: Tarkemmin sanottuna HEAD on liikkuva osoitin, joka voisi viitata nykyiseen haaraan, tai se ei voinut, mutta se viittaa aina ”nykyiseen sitoutumiseen”. Se (nykyinen sitoumus) on sitoumus, jonka "git sitoutuminen" on rakennettu päälle, ja sitä verrataan usein "git diff - välimuisti" ja "git status".

git log @: 'Pään' kirjoittaminen vie aikaa, varsinkin kun oikotie on '@' sen sijaan. Symboli '@' valitaan, koska se noudattaa luonnollisesti syntaksia (esim. (u)), mutta paitsi että siinä ei ole viitettä tai toimintoa, ja kun niitä ei ole, 'PÄÄ 'voidaan olettaa @: n sijasta.

1. Irrotettu pää

HEAD: n on uskottavaa osoittaa tiettyyn muutokseen, jota ei ole vielä linkitetty haaran nimeen. Tätä tilannetta kutsutaan erilliseksi pääksi, ja se tapahtuu, kun joku tarkistaa jotain muuta kuin (paikallista) haaraa, sanoa tietyn sitoumuksen, etähaaran tai tunnisteen. Siksi irrotettua päätä voidaan käyttää kassan tekemiseen, joka ei osoita minkään olemassa olevan sivun lähtökohtaa, tai luoda aivan uuden sitoumuksen, johon ei välttämättä viitata tunnetulla haaralla.

Otetaan esimerkiksi esimerkki siitä, että kassaamme sitoumuksen b toisella tai toisella tavalla

  • git kassalle mestari #tai
  • git kassalle v3.1

Huomaa, että riippumatta siitä, mitä kassakomentoa käytetään, HEAD viittaa nyt sitoutumaan b. Tätä b: n tilaa kutsutaan erilliseksi HEAD-tilaksi.

Tarkastellaan alla olevia esimerkkejä nähdäksesi, mitä tapahtuu, kun sitoumus luodaan:

git checkout -b foo: Ensin luodaan uusi haara, nimeltään foo, johon viitataan sitoutumaan f: ään, joka puolestaan ​​päivittää HEAD: n osoittamaan haaraan foo. Tämä tarkoittaa, että se ei ole enää erillisessä PÄÄ-tilassa.

git branch foo: Tällöin luodaan uusi haara, nimeltään foo, jota kutsutaan sitomiseksi f, mutta PÄÄ jätetään irti.

git tag foo: Tämäkin luo uuden tunnisteen foo, jota kutsutaan sitomiseksi f, mutta PÄÄ jätetään irti.

Oletetaan, että olet vaihtanut muuhun sijaintiin kuin sitoutumaan f, sitten objektin nimi on ensin palautettava (yleensä tehtävä käyttämällä git reflog -komentoa), ja sen jälkeen siihen luodaan viite.

Selvittääksesi kaksi viimeistä sitoumusta, joihin HEAD viittaa, käytä jompaa kumpaa alla olevista komennoista:

  • git log -g -2 PÄÄ #tai
  • git reflog -2 PÄÄ

2. ORIG_HEAD

On vielä yksi sellainen pää, josta sinun on tiedettävä. Komennot “yhdistä” tai “vedä” jättivät nykyisen oksan alkuperäisen kärjen aina ORIG_HEAD-nimeltä. Sitä voidaan käyttää seuraavien komentojen avulla.

git reset –hard ORIG_HEAD: Tämän avulla nollaa kova palauttaa hakemistotiedoston yhdessä työskentelevän puun kanssa alkuperäiseen tilaansa palauttaen samalla oksan kärjen kyseiselle sitoutumiselle, mutta se hylkää paikalliset muutokset.

git reset –merge ORIG_HEAD: Mutta entä jos haluat pitää paikalliset muutokset siinä mielessä, että voit käyttää yllä olevaa komentoa pitää paikalliset muutokset.lisennäessä yhdistäminen asettaa ”.git / ORIG_HEAD” aina alkuperäisen HEAD-tilan, joten ongelmallinen yhdistäminen voidaan poistaa käyttämällä 'git reset ORIG_HEAD'. Tämän lisäksi yhdistäminen asettaa '.git / ORIG_HEAD' aina alkuperäiseen HEAD-tilaan, jotta ongelmallinen yhdistäminen voidaan poistaa käyttämällä 'git reset ORIG_HEAD'.

Jos kohtaat ongelmia useiden toimeksiantojen kanssa, ORIG_HEAD asetetaan nykyisen haaran aloituspisteeseen ennen minkä tahansa korjaustiedoston asettamista, koska virhe toimeksiannoissa voidaan korjata helpommin tällä tavalla.

Git HEADin edut

  • Sitä käytetään osoittamaan äskettäin sitoutuneelle haaralle.
  • Sitä voidaan käyttää muutosten tekemiseen viimeksi käydystä pisteestä.
  • Sitä voidaan käyttää myös siirtymään historian eri pisteisiin ja työskentelemään sieltä.
  • Pitää arkiston ja prosessin puhtaana ja luettavana.

johtopäätös

Gitillä on monia käyttötarkoituksia, ja kehittäjät, tuotepäälliköt ja tietotieteilijät käyttävät sitä laajasti. Sen komennot ovat erittäin tehokkaita ja voivat olla erittäin hyödyllisiä. HEAD on viittaus viimeiseen sitoutumiseen tällä hetkellä uloskirjautuneessa haarassa.

Suositellut artikkelit

Tämä on opas Mikä on Head in Git ?. Tässä keskustellaan GIT: n HEAD-osoittimesta, joka sisältää erillisen HEAD: n ja ORIG_HEAD: n sekä Git HEAD: n edut. Voit myös katsoa seuraavia artikkeleita saadaksesi lisätietoja -

  1. Mikä on Git Fetch?
  2. Git Fetch vs Git Pull
  3. Mikä on Git Branch?
  4. Git-terminologia
  5. GIT-versionhallintajärjestelmä
  6. Git Push
  7. Git-elinkaaren kolme vaihetta työnkulun kanssa
  8. Kuinka käyttää GIT Cherry-pick-esimerkkiä?

Luokka: