Pag-unawa at Paglutas sa Isyu sa Git Detached Head

Pag Unawa At Paglutas Sa Isyu Sa Git Detached Head



Sa Git Bash, ang HEAD ay ang sangay kung saan gumagana ang developer. Bilang isang propesyonal na gumagamit ng Git Bash, maaaring narinig mo na ang tungkol sa hiwalay na estado ng HEAD. Ang ilang mga gumagamit ay talagang nakakaalarma ang kundisyong ito, nangangahulugan lamang ito na ang iyong HEAD ay tumuturo sa partikular na commit sa halip na sa sangay.

Ang gabay na ito ay naglalaman ng nilalaman tungkol sa malalim na pag-unawa sa mga normal na nakahiwalay na estado ng HEAD at mga solusyon para sa paglutas ng hiwalay na HEAD kasama ang sumusunod na nilalaman:

Ano ang Normal na Estado ng HEAD sa Git?

Ang normal na estado ng HEAD sa Git ay kung saan itinuturo ng iyong HEAD ang kasalukuyang sangay. Kapag lumipat ang user sa pagitan ng iba't ibang branch, ililipat din ang HEAD sa branch na iyon. Tingnan ang mga sumusunod na hakbang para sa praktikal na pagpapakita.







Hakbang 1: Ipakita ang Katayuan ng Log
Buksan ang Git Bash at ipakita ang log ng proyekto gamit ang 'git log' utos:



git log



Sa kasalukuyan, itinuturo ng aming HEAD ang ' master ” sangay.





Hakbang 2: Lumipat ng Sangay
Ngayon, lumipat sa isa pang lokal na sangay, at pagkatapos ay suriin ang posisyon ng HEAD pointer. Halimbawa, tinitingnan namin ang ' tampok ” sangay:

git checkout tampok



Ang sangay ay inilipat sa ' tampok ”.

Hakbang 3: Suriin ang Log
Tingnan muli ang katayuan ng log ng repositoryo at suriin ang estado ng HEAD para sa pag-verify:

git log

Ayon sa sumusunod na output, ang aming HEAD ay tumuturo na ngayon sa 'tampok' na sangay:

Kaya, ito ang normal na senaryo ng HEAD sa Git Bash.

Ano ang Kahulugan ng Detached Head State?

Tulad ng nabanggit namin sa itaas, ang isang hiwalay na estado ng HEAD ay nangyayari kapag ang HEAD ay tumuturo sa commit sa halip na sa sangay. Kapag lumipat ka sa pinakabagong commit, ang iyong HEAD ay ituturo sa commit, at ito ang hiwalay na HEAD na estado. Para sa mas mahusay na pag-unawa, maglakad sa praktikal na manwal.

Hakbang 1: Suriin ang Katayuan ng Ulo
Una, ipakita ang log upang tingnan ang HEAD state sa pamamagitan ng pagpapatakbo ng command na ito sa Git Bash:

git log --online

Sa kasalukuyan, itinuturo ng HEAD ang ' tampok ” sangay.

Hakbang 2: Tingnan ang Commit
Ilipat natin ang HEAD sa pinakabagong commit gamit ang sumusunod na command kasama ang SHA hash:

git checkout b8d840c

Makikita mo na ang hiwalay na estado ng HEAD ay lilitaw sa paglipat sa commit sa halip na sa branch.

Hakbang 3: Suriin Muli ang Katayuan ng Ulo
Ngayon, kung ipapakita mo ang log upang suriin ang estado ng HEAD, makikita mo na ito ay tumuturo sa commit:

git log --online

Narito ang hiwalay na HEAD na estado ng Git.

Anong mga Sitwasyon ang Lumilikha ng mga Detached HEAD States?

Mayroong dalawang sitwasyon kung saan makikita ang isang hiwalay na estado ng HEAD, tingnan ang talahanayan sa ibaba:

Sitwasyon 1 Kapag lumipat ang user sa SHA hash commit sa halip na sa branch.
Sitwasyon 2 Kapag lumipat ang user sa malayong sangay bago ito kunin.

Paano Lutasin ang Mga Isyu sa Git-Detached HEAD?

Ngayon, tingnan natin kung paano mo mareresolba ang hiwalay na isyu sa HEAD. Ito ay medyo simple upang malutas, lumikha lamang ng isang bagong sangay, lumipat dito, at gawin ang mga pagbabago. Upang tingnan ito, tingnan ang ibinigay na mga tagubilin.

Hakbang 1: Gumawa ng Bagong Sangay
Una, lumikha ng bagong sangay sa pamamagitan ng 'git branch' utos:

git branch bago

Hakbang 2: Lumipat sa Nilikhang Sangay
Pagkatapos nito, lumipat dito sa pamamagitan ng 'git switch' utos at i-type ang pangalan ng sangay:

git lumipat ng bago

Hakbang 3: Magsagawa ng Mga Pagbabago
Ibigay ang mga inilapat na pagbabago at tukuyin ang mensahe gamit ang ' m 'tag:

git commit -m 'napalitan ng branch'

Hakbang 4: Suriin ang Log
Ngayon, suriin ang katayuan ng HEAD sa pamamagitan ng pagpapakita ng log:

git log

Ito ay kung paano mo mareresolba ang hiwalay na estado ng HEAD.

Konklusyon

Ang Git detached HEAD state ay lumitaw nang ang HEAD ay tumuturo sa commit sa halip na sa branch. Para maresolba ito, gumawa lang ng bagong branch, lumipat dito, at i-commit ang mga pagbabago. Natutunan mo ang detalyadong tungkol sa mga hiwalay na isyu sa HEAD sa Git.