Verstehen und Lösen des Git-Detached-Head-Problems

Verstehen Und Losen Des Git Detached Head Problems



In Git Bash ist HEAD der Zweig, in dem der Entwickler arbeitet. Als professioneller Benutzer von Git Bash haben Sie möglicherweise vom getrennten HEAD-Status gehört. Einige Benutzer finden diesen Zustand tatsächlich alarmierend, er bedeutet lediglich, dass Ihr HEAD auf den spezifischen Commit und nicht auf den Zweig zeigt.

Dieser Leitfaden enthält Inhalte zum tiefen Verständnis normaler abgelöster HEAD-Zustände und Lösungen zur Lösung des abgelösten HEAD, einschließlich der folgenden Inhalte:

Was ist der normale HEAD-Status in Git?

Der normale HEAD-Status in Git ist der, in dem Ihr HEAD auf den aktuellen Zweig zeigt. Wenn der Benutzer zwischen verschiedenen Zweigen wechselt, wird auch der HEAD auf diesen Zweig umgeschaltet. Sehen Sie sich die folgenden Schritte zur praktischen Demonstration an.







Schritt 1: Protokollstatus anzeigen
Öffnen Sie Git Bash und zeigen Sie das Protokoll des Projekts mit an „git log“ Befehl:



Git-Protokoll



Derzeit zeigt unser KOPF auf „ Meister ' Zweig.





Schritt 2: Zweig wechseln
Wechseln Sie nun zu einem anderen lokalen Zweig und überprüfen Sie dann die Position des HEAD-Zeigers. Wir schauen uns zum Beispiel die „ Besonderheit ' Zweig:

git checkout Besonderheit



Die Filiale wurde auf „ Besonderheit “.

Schritt 3: Überprüfen Sie das Protokoll
Sehen Sie sich den Protokollstatus des Repositorys erneut an und überprüfen Sie den HEAD-Status zur Verifizierung:

Git-Protokoll

Gemäß der folgenden Ausgabe zeigt unser HEAD nun auf den Zweig „feature“:

Dies ist also das normale HEAD-Szenario in Git Bash.

Was bedeutet „Detached Head State“?

Wie oben erwähnt, tritt ein getrennter HEAD-Zustand auf, wenn der HEAD auf den Commit und nicht auf den Zweig zeigt. Wenn Sie zum neuesten Commit wechseln, zeigt Ihr HEAD auf den Commit, und dies ist der getrennte HEAD-Status. Gehen Sie zum besseren Verständnis das praktische Handbuch durch.

Schritt 1: Überprüfen Sie den Kopfstatus
Zeigen Sie zunächst das Protokoll an, um den HEAD-Status anzuzeigen, indem Sie diesen Befehl in Git Bash ausführen:

Git-Protokoll --online

Derzeit weist HEAD auf die „ Besonderheit ' Zweig.

Schritt 2: Checken Sie das Commit aus
Wechseln wir HEAD zum neuesten Commit, indem wir den folgenden Befehl zusammen mit dem SHA-Hash verwenden:

git checkout b8d840c

Sie werden sehen, dass beim Wechsel zum Commit statt zum Branch der Status „Detached HEAD“ angezeigt wird.

Schritt 3: Überprüfen Sie den Kopfstatus erneut
Wenn Sie nun das Protokoll anzeigen, um den HEAD-Status zu überprüfen, werden Sie sehen, dass es auf den Commit verweist:

Git-Protokoll --online

Hier ist der abgetrennte HEAD-Status von Git.

Welche Situationen führen zu getrennten HEAD-Zuständen?

Es gibt zwei Situationen, in denen ein losgelöster HEAD-Zustand erkennbar ist. Schauen Sie sich die folgende Tabelle an:

Situation 1 Wenn der Benutzer zum SHA-Hash-Commit anstelle des Zweigs wechselt.
Situation 2 Wenn der Benutzer zum Remote-Zweig wechselt, bevor er ihn abruft.

Wie löst man Git-detached HEAD-Probleme?

Sehen wir uns nun an, wie Sie das Problem mit dem abgetrennten HEAD lösen können. Die Lösung ist ziemlich einfach: Erstellen Sie einfach einen neuen Zweig, wechseln Sie zu diesem und übernehmen Sie die Änderungen. Um es praktisch anzusehen, schauen Sie sich die gegebene Anleitung an.

Schritt 1: Erstellen Sie einen neuen Zweig
Erstellen Sie zunächst den neuen Zweig über „Git-Zweig“ Befehl:

Git-Zweig neu

Schritt 2: Wechseln Sie zum erstellten Zweig
Wechseln Sie danach über die „git switch“ Befehl und geben Sie den Filialnamen ein:

Idiot neu wechseln

Schritt 3: Änderungen übernehmen
Übernehmen Sie die angewendeten Änderungen und geben Sie die Nachricht mit „ M ' Etikett:

Git-Commit -M „Zweig geschaltet“

Schritt 4: Überprüfen Sie das Protokoll
Überprüfen Sie nun den Status des HEAD, indem Sie das Protokoll anzeigen:

Git-Protokoll

So können Sie den abgetrennten HEAD-Status auflösen.

Abschluss

Der von Git getrennte HEAD-Status wurde angezeigt, wenn der HEAD auf den Commit und nicht auf den Zweig zeigte. Um das Problem zu beheben, erstellen Sie einfach einen neuen Zweig, wechseln Sie zu diesem und übernehmen Sie die Änderungen. Sie haben detaillierte Informationen zu Problemen mit freistehenden HEADs in Git erhalten.