Forståelse og løsning af Git Detached Head-problemet

Forstaelse Og Losning Af Git Detached Head Problemet



I Git Bash er HEAD grenen, hvor udvikleren arbejder. Som professionel bruger af Git Bash har du måske hørt om tilstanden løsrevet HEAD. Nogle brugere finder denne tilstand faktisk alarmerende, det betyder bare, at dit HOVED peger på den specifikke commit i stedet for grenen.

Denne vejledning indeholder indhold om den dybe forståelse af normale løsrevet HEAD-tilstande og løsninger til løsning af løsrevet HEAD, herunder følgende indhold:

Hvad er den normale hovedtilstand i Git?

Den normale HEAD-tilstand i Git er, hvor dit HEAD peger på den aktuelle gren. Når brugeren skiftede mellem forskellige grene, skiftes HEAD også til den gren. Tjek følgende trin for praktisk demonstration.







Trin 1: Vis logstatus
Åbn Git Bash og vis loggen for projektet ved hjælp af 'git log' kommando:



git log



I øjeblikket peger vores HOVED på ' mestre ' afdeling.





Trin 2: Skift filial
Skift nu til en anden lokal filial, og kontroller derefter HEAD-markørens position. For eksempel tjekker vi ud til ' funktion ' afdeling:

git checkout funktion



Filialen er skiftet til ' funktion ”.

Trin 3: Tjek log
Se logstatus for depotet igen, og kontroller HEAD-tilstanden for verifikation:

git log

Ifølge følgende output peger vores HEAD nu på 'feature'-grenen:

Så dette er det normale HEAD-scenarie i Git Bash.

Hvad betyder Detached Head State?

Som vi nævnte ovenfor, opstår en adskilt HEAD-tilstand, når HEAD'et peger på commit i stedet for grenen. Når du skifter til den seneste commit, vil dit HEAD pege på commit, og dette er den adskilte HEAD-tilstand. Gå gennem den praktiske manual for bedre forståelse.

Trin 1: Tjek hovedstatus
Vis først loggen for at se HEAD-tilstanden ved at køre denne kommando i Git Bash:

git log --online

I øjeblikket peger HEAD på ' funktion ' afdeling.

Trin 2: Tjek forpligtelsen
Lad os skifte HEAD til den seneste commit ved at bruge følgende kommando sammen med SHA-hash:

git checkout b8d840c

Du vil se, at den adskilte HEAD-tilstand vises, når du skifter til commit i stedet for grenen.

Trin 3: Tjek hovedstatus igen
Nu, hvis du viser loggen for at kontrollere HEAD-tilstanden, vil du se, at den peger på commit:

git log --online

Her er den løsrevne HEAD-tilstand af Git.

Hvilke situationer skaber løsrevne HEAD-stater?

Der er to situationer, hvor en løsrevet HEAD-tilstand kan ses, se nedenstående tabel:

Situation 1 Når brugeren skifter til SHA-hash-commit i stedet for filialen.
Situation 2 Når brugeren skifter til den eksterne filial, før den hentes.

Hvordan løses problemer med Git-detached HEAD?

Lad os nu se, hvordan du kan løse problemet med løsrevet HEAD. Det er ret nemt at løse, bare opret en ny filial, skift til den og forpligt ændringerne. For at se det praktisk talt, tjek de givne instruktioner.

Trin 1: Opret en ny filial
Først skal du oprette den nye gren gennem 'git branch' kommando:

git gren ny

Trin 2: Skift til den oprettede filial
Skift derefter til det gennem 'git switch' kommando og skriv filialnavnet:

git skifte nyt

Trin 3: Bekræft ændringer
Bekræft de anvendte ændringer og angiv meddelelsen ved at bruge ' m ' tag:

git commit -m 'filial skiftet'

Trin 4: Tjek log
Tjek nu status for HEAD ved at vise loggen:

git log

Sådan kan du løse tilstanden løsrevet HOVED.

Konklusion

Git detached HEAD-tilstanden dukkede op, når HEAD'et pegede på commit i stedet for grenen. For at løse det skal du bare oprette en ny filial, skifte til den og forpligte ændringerne. Du har lært detaljeret om detached HEAD-problemer i Git.