Supratimas ir išspręstas „Git“ atsiskyrusios galvos problemos

Supratimas Ir Issprestas Git Atsiskyrusios Galvos Problemos



Git Bash sistemoje HEAD yra filialas, kuriame dirba kūrėjas. Kaip profesionalus „Git Bash“ vartotojas, galbūt girdėjote apie atskirtą HEAD būseną. Kai kuriems vartotojams ši sąlyga iš tikrųjų kelia nerimą, tai tiesiog reiškia, kad jūsų HEAD nurodo konkretų įsipareigojimą, o ne šaką.

Šiame vadove pateikiamas turinys apie gilų įprastų atjungtų HEAD būsenų supratimą ir sprendimus, kaip išspręsti atjungtą HEAD, įskaitant šį turinį:

Kokia yra normali HEAD būsena Git?

Įprasta HEAD būsena Git yra ta, kai jūsų HEAD nukreipia į dabartinę šaką. Kai vartotojas persijungia tarp skirtingų šakų, HEAD taip pat perjungiamas į tą šaką. Peržiūrėkite šiuos praktinio demonstravimo veiksmus.







1 veiksmas: Rodyti žurnalo būseną
Atidarykite „Git Bash“ ir parodykite projekto žurnalą naudodami „git žurnalas“ komanda:



git žurnalas



Šiuo metu mūsų GALVA nurodo „ meistras “ filialas.





2 veiksmas: perjunkite filialą
Dabar perjunkite į kitą vietinį padalinį ir patikrinkite HEAD rodyklės padėtį. Pavyzdžiui, mes tikriname „ funkcija “ filialas:

atsiskaityti funkcija



Filialas pakeistas į „ funkcija “.

3 veiksmas: patikrinkite žurnalą
Dar kartą peržiūrėkite saugyklos žurnalo būseną ir patikrinkite HEAD būseną, kad patikrintumėte:

git žurnalas

Pagal šią išvestį mūsų HEAD dabar nurodo „funkcijų“ šaką:

Taigi, tai yra įprastas HEAD scenarijus „Git Bash“.

Ką reiškia atskirtos galvos būsena?

Kaip minėjome aukščiau, atsieta HEAD būsena atsiranda, kai HEAD nurodo įsipareigojimą, o ne šaką. Kai persijungsite į naujausią įsipareigojimą, jūsų HEAD parodys įsipareigojimą, ir tai yra atskirta HEAD būsena. Norėdami geriau suprasti, peržiūrėkite praktinį vadovą.

1 veiksmas: patikrinkite galvos būseną
Pirmiausia parodykite žurnalą, kad pamatytumėte HEAD būseną, vykdydami šią komandą „Git Bash“:

git žurnalas --prisijungęs

Šiuo metu HEAD rodo į „ funkcija “ filialas.

2 veiksmas: patikrinkite įsipareigojimą
Perjunkite HEAD į naujausią įsipareigojimą naudodami šią komandą kartu su SHA maiša:

atsiskaityti b8d840c

Pamatysite, kad atjungta HEAD būsena pasirodo perėjus į įsipareigojimą, o ne į šaką.

3 veiksmas: dar kartą patikrinkite galvos būseną
Dabar, jei parodysite žurnalą, kad patikrintumėte HEAD būseną, pamatysite, kad jis nurodo įsipareigojimą:

git žurnalas --prisijungęs

Čia yra atskirta „Git“ HEAD būsena.

Kokios situacijos sukuria atskirtas HEAD būsenas?

Yra dvi situacijos, kai galima pamatyti atskirtą HEAD būseną, žr. toliau pateiktą lentelę:

1 situacija Kai vartotojas pereina prie SHA maišos įsipareigojimo, o ne šakos.
2 situacija Kai vartotojas persijungia į nuotolinį filialą prieš jį paimdamas.

Kaip išspręsti „Git“ atsiskyrusios HEAD problemas?

Dabar pažiūrėkime, kaip galite išspręsti atskirtą HEAD problemą. Tai gana paprasta išspręsti, tiesiog sukurkite naują šaką, perjunkite į ją ir atlikite pakeitimus. Norėdami tai pamatyti praktiškai, peržiūrėkite pateiktas instrukcijas.

1 veiksmas: sukurkite naują filialą
Pirmiausia sukurkite naują filialą naudodami „git filialas“ komanda:

gito šaka naujas

2 veiksmas: perjunkite į sukurtą filialą
Po to pereikite prie jo per „git jungiklis“ komandą ir įveskite šakos pavadinimą:

git perjungti naujas

3 veiksmas: atlikite pakeitimus
Patvirtinkite pritaikytus pakeitimus ir nurodykite pranešimą naudodami „ m “ žyma:

git commit -m 'filialas perjungtas'

4 veiksmas: patikrinkite žurnalą
Dabar patikrinkite HEAD būseną rodydami žurnalą:

git žurnalas

Taip galite išspręsti atjungtos HEAD būseną.

Išvada

Git detached HEAD būsena pasirodė, kai HEAD nurodė įsipareigojimą, o ne šaką. Norėdami tai išspręsti, tiesiog sukurkite naują šaką, perjunkite į ją ir atlikite pakeitimus. Išsamiai sužinojote apie „Git“ atskirtas HEAD problemas.