Mi a Head in Git?

Időnként láthatja, hogy a Git dokumentációja HEAD-re hivatkozik. Például, az ágot teljesen integrálni kell a HEAD-be. De mi pontosan a Git HEAD?

Ebben a cikkben többet megismerünk a Git HEAD-ről, de előtte csak összefoglaljuk, mi a Git és mire használják. A Git az elosztott vezérlés eszköze, amelyet nem csak a termékmenedzserek és a fejlesztők használnak, hanem az adattudósok is a program forráskód-fejlesztésének és a történelemnek a kezelésére.

Fej mutató Gitben

A Git fenntartja a hivatkozáshoz tartozó változót, amelyet HEAD-nek hívnak a legutóbbi kötelezettségvállaláshoz a legutóbbi fizetési ágban. El tudod képzelni a FÉT, mint a „jelenlegi elkötelezett ágot”. És mutatóra gondolhatunk, mivel ennek a változónak az a célja, hogy mutasson vagy mutatjon utalást az adott elkötelezettségre a lerakatban. Mondjuk, új elkötelezettséget vállalunk a repóban, akkor a mutató vagy a FEJ mozgatni fog, vagy megváltoztatja pozícióját, hogy egy új elkötelezettségre mutatjon.

A HEAD a jelenlegi ág kezdőpontjára mutat a lerakatban. Ez úgy tekinthető, mint az adattár utolsó állapota vagy utoljára kijelentkezett pontja. Más szavakkal, a FEJ mutató a következő elkötelezettség szülõjére, vagy arra, ahol a következõ elkötelezettség fog megtörténni, mivel ott hagyta el a repo.

Jó analógia lenne a lemezjátszó, és a lejátszás és rögzítés gombjai, mint HEAD. Amint az audió felvétel megkezdődik, a szalag előre mozog a fej fölött, és rögzíti rá. A Stop gomb leállítja a felvételt, miközben továbbra is az utoljára rögzített pontra mutat, és az a pont, ahol a rögzítőfej megállt, ott folytatja a felvételt, amikor a Record ismét megnyomja. Ha körül mozogunk, a fejmutató különböző helyekre mozog, azonban a Record újbóli megnyomásakor a felvétel elkezdi a felvételt attól a ponttól, amelyre a fej mutatott, amikor a Record megnyomta.

A Gitben az alábbi paranccsal láthatja, hogy a HEAD mutató mit mutat.

macska .git / fej:

  • Ez a .git / HEAD tartalmát mutatja, az alábbiak szerint
  • ref: refs / heads / master
  • Alapvetően egy szimbolikus hivatkozás a legutóbbi elkötelezett ágra, amelyet kijelentkezett, és ténylegesen rámutat az elkötelezettségre az aktuális ág elején.

Ha az alábbiak szerint ábrázolunk egy új kötelezettségvállalást, akkor az hozzáadódik a jelenlegi HEAD előtt, ami miatt Git automatikusan a HEAD-et az új kötelezettségvállalásra irányítja.

git diff HEAD..HEAD ~ 3: Pontosabban, a HEAD mozgó mutató, amely utalhat az aktuális ágra, vagy nem tudott, de mindig utal az „aktuális elkötelezettségre”. Ez (jelenlegi kötelezettségvállalás) az a kötelezettségvállalás, amelyre a „git vállalkozás” épül, és gyakran összehasonlítják a „git diff - gyorsítótárban” és a „git status” -kal.

git log @: A „HEAD” beírása időigényes, különösen, ha a „@” parancsikon helyett van. A „@” szimbólumot azért választják, mert ez természetesen követi az szintaxist (pl. (u)), de kivéve, hogy nincs hivatkozás vagy művelet, és ha ezek közül egyik sem létezik, akkor „HEAD 'a @ helyett feltételezhető.

1. Csatlakoztatott fej

A HEAD számára valószínű, hogy rámutat egy olyan konkrét változásra, amelyet még nem kapcsoltak össze egy fióknévvel. Ez az a helyzet, amelyet elkülönített HEAD-nek neveznek, és akkor fordul elő, ha valaki nem egy (helyi) fiókot, például egy konkrét elkötelezettséget, távoli fiókot vagy címkét ellenőriz. Ezért a leválasztott HEAD felhasználható olyan kötelezettségvállalás kifizetésére, amely nem mutat meglévő ágak kiindulási pontját, vagy egy vadonatúj kötelezettségvállalás létrehozására, amelyre nem feltétlenül hivatkozik egy ismert ágazat.

Vegyünk egy példát, ahol b vagyunk pénzt egy vagy másik módon

  • git checkout master #vagy
  • git checkout v3.1

Ne feledje, hogy függetlenül attól, hogy melyik fizetési parancsot használják, a HEAD most hivatkozik a b. Ezt a b állapotot különálló HEAD állapotnak nevezzük.

Nézzük meg az alábbi példákat, hogy megtudjuk, mi történik, ha kötelezettségvállalást hozunk létre:

git checkout -b foo: Először létrejön egy új, foo nevű ág, amelyet a ffre utal, amely viszont frissíti a FEJET, hogy az ágfiókra mutasson. Ez azt jelenti, hogy ez már nem lesz levált HEAD állapotban.

git branch foo: Ez létrehoz egy új ág nevű ágot, amely f-re hivatkozik, de a HEAD elválasztva marad.

git tag foo: Ez szintén létrehoz egy új, foo nevű címkét, amelyet f kötelezettségre utalnak, de a HEAD leválasztva marad.

Tegyük fel, hogy az f-től eltérő pozícióra váltottál, akkor először vissza kell állítani az objektum nevét (általában a git reflog paranccsal kell megtenni), majd utalás jön létre erre.

Ahhoz, hogy megtudja a HEAD utóbbi két kötelezettségvállalását, használja az alábbi parancsok egyikét:

  • git log -g -2 FEJ # vagy
  • git reflog -2 HEAD

2. ORIG_HEAD

Van még egyfajta fej, amelyről tudnod kell. Az „egyesítés” vagy „húzás” parancsok mindig az aktuális ág eredeti csúcsát hagyták el ORIG_HEAD néven. A következő parancsokkal használható.

git reset –hard ORIG_HEAD: Ennek segítségével a reset hard visszaállítja az indexfájlt és a munkafát az eredeti állapotába, miközben az ág csúcsát visszaállítja arra a kötelezettségvállalásra, de elvetíti a helyi változásokat.

git reset –merge ORIG_HEAD: De mi lenne, ha meg akarja tartani a helyi változásokat, mivel a fenti parancs segítségével megtarthatja a helyi változásokat. Ezen felül, az egyesítés mindig a „.git / ORIG_HEAD” beállítja az eredeti HEAD állapotba, tehát a problémás egyesítés eltávolítható az 'git reset ORIG_HEAD' használatával. Ezen túlmenően az egyesítés az '.git / ORIG_HEAD' állományt mindig a HEAD eredeti állapotába állítja be, hogy a 'git reset ORIG_HEAD' gombbal törölje a problémás egyesítést.

Ha bármilyen problémával szembesül több átadással, akkor az ORIG_HEAD beállítást az aktuális ág kezdőpontjára állítja, mielőtt bármilyen javítást alkalmazna, mivel a megbízásokban lévő hiba így könnyebben kijavítható.

A Git HEAD előnyei

  • A nemrégiben elkötelezett ágra mutat.
  • Használható változtatásokhoz az utoljára meglátogatott ponttól.
  • Használható arra is, hogy a történelem különböző pontjaira lépjenek, és onnan dolgozzanak.
  • Az adattár és a folyamat tiszta és olvasható.

Következtetés

A Gitnek számos felhasználási területe van, és a fejlesztők, termékmenedzserek és adattudósok széles körben használják. A parancsai nagyon hatékonyak és nagyon hasznosak lehetnek. A HEAD egy hivatkozás az utolsó kötelezettségvállalásra a jelenleg kihagyott ágban.

Ajánlott cikkek

Ez egy útmutató a Mi a fej Gitben című fejezethez. Itt tárgyaljuk a GIT HEAD Pointer-et, amely magában foglalja a különálló HEAD-et és az ORIG_HEAD-et, valamint a Git HEAD előnyeit. A következő cikkeket is megnézheti további információkért -

  1. Mi az a Git Fetch?
  2. Git Fetch vs Git Pull
  3. Mi a Git Branch?
  4. Git terminológia
  5. GIT verziószabályozó rendszer
  6. Git Push
  7. A Git életciklusának három szakasza a munkafolyamattal
  8. Hogyan kell használni a GIT Cherry-pick példát?

Kategória: