Het Git-probleem met losgemaakt hoofd begrijpen en oplossen

Het Git Probleem Met Losgemaakt Hoofd Begrijpen En Oplossen



In Git Bash is HEAD de branch waar de ontwikkelaar werkt. Als professionele gebruiker van Git Bash heb je misschien gehoord van de vrijstaande HEAD-status. Sommige gebruikers vinden deze toestand eigenlijk alarmerend, het betekent alleen dat je HEAD naar de specifieke commit verwijst in plaats van naar de branch.

Deze gids bevat inhoud over het diepgaande begrip van normale, onthechte HEAD-toestanden en oplossingen voor het oplossen van de onthechte HEAD, inclusief de volgende inhoud:

Wat is de normale HEAD-status in Git?

De normale HEAD-status in Git is waar je HEAD naar de huidige branch verwijst. Wanneer de gebruiker tussen verschillende takken wisselt, wordt de HEAD ook naar die tak geschakeld. Bekijk de volgende stappen voor een praktische demonstratie.







Stap 1: Logstatus weergeven
Open Git Bash en geef het logboek van het project weer met behulp van de “git log” commando:



git log



Momenteel wijst ons HOOFD naar de “ meester ' tak.





Stap 2: Van filiaal wisselen
Schakel nu over naar een andere lokale vestiging en controleer vervolgens de positie van de HEAD-aanwijzer. We checken bijvoorbeeld uit bij de “ functie ' tak:

git afrekenen functie



Het filiaal is overgeschakeld naar “ functie ”.

Stap 3: Controleer het logboek
Bekijk de logstatus van de repository opnieuw en controleer de HEAD-status ter verificatie:

git log

Volgens de volgende uitvoer wijst onze HEAD nu naar de “feature” -tak:

Dit is dus het normale HEAD-scenario in Git Bash.

Wat betekent de staat van een vrijstaand hoofd?

Zoals we hierboven vermeldden, treedt een vrijstaande HEAD-status op wanneer de HEAD naar de commit verwijst in plaats van naar de branch. Wanneer je naar de laatste commit overschakelt, zal je HEAD naar de commit wijzen, en dit is de vrijstaande HEAD-status. Voor een beter begrip kunt u de praktische handleiding doornemen.

Stap 1: Controleer de kopstatus
Geef eerst het log weer om de HEAD-status te bekijken door deze opdracht in Git Bash uit te voeren:

git log --online

Momenteel wijst HEAD naar de “ functie ' tak.

Stap 2: Betaal de commit
Laten we HEAD naar de nieuwste commit schakelen met behulp van het volgende commando samen met de SHA-hash:

git afrekenen b8d840c

Je zult zien dat de vrijstaande HEAD-status verschijnt bij het overschakelen naar de commit in plaats van naar de branch.

Stap 3: Controleer de hoofdstatus opnieuw
Als je nu het logboek weergeeft om de HEAD-status te controleren, zul je zien dat het naar de commit verwijst:

git log --online

Hier is de vrijstaande HEAD-status van Git.

Welke situaties creëren vrijstaande HEAD-staten?

Er zijn twee situaties waarin een vrijstaande HEAD-status kan worden waargenomen, bekijk de onderstaande tabel:

Situatie 1 Wanneer de gebruiker overschakelt naar de SHA-hash-commit in plaats van de branch.
Situatie 2 Wanneer de gebruiker naar de externe vertakking overschakelt voordat deze wordt opgehaald.

Hoe Git-Detached HEAD-problemen op te lossen?

Laten we nu eens kijken hoe u het losgemaakte HEAD-probleem kunt oplossen. Het is vrij eenvoudig op te lossen: maak gewoon een nieuwe branch, schakel ernaar toe en voer de wijzigingen door. Om het praktisch te bekijken, bekijk de gegeven instructies.

Stap 1: Maak een nieuwe vestiging
Maak eerst de nieuwe vertakking via de “git tak” commando:

git-tak nieuw

Stap 2: Schakel over naar de gemaakte vertakking
Schakel daarna ernaartoe via de 'git-schakelaar' commando en typ de filiaalnaam:

git schakelaar nieuw

Stap 3: Wijzigingen vastleggen
Voer de toegepaste wijzigingen door en specificeer het bericht met “ M ' label:

git commit -M 'tak geschakeld'

Stap 4: Controleer het logboek
Controleer nu de status van de HEAD door het log weer te geven:

git log

Dit is hoe u de vrijstaande HEAD-status kunt oplossen.

Conclusie

De Git-losgemaakte HEAD-status verscheen toen de HEAD naar de commit verwees in plaats van naar de branch. Om het probleem op te lossen, maakt u gewoon een nieuwe branch, schakelt u ernaar toe en legt u de wijzigingen vast. Je hebt gedetailleerd geleerd over vrijstaande HEAD-problemen in Git.