Wenn ich jetzt Übertragungen an meinem Projekt vornehme, wird in der Befehlszeile der SHA-1-Zweig als Arbeitszweig angezeigt (anstelle von master)
Dies bedeutet wahrscheinlich, dass Sie einen "abgetrennten HEAD" haben. Ein abgetrennter HEAD verweist direkt auf einen Commit, anstatt auf einen Zweig zu verweisen (der dann auf einen Commit verweist). Ein abgetrennter Kopf ist wie ein unbenannter Zweig.
Dieser Zustand wurde verursacht durch Ihre git checkout HEAD^
Befehl als HEAD^
bezieht sich auf eine Übertragung, nicht auf einen Zweignamen. Sie wollten wahrscheinlich Folgendes tun git reset --hard HEAD^
- während Meister war immer noch der aktive Zweig -, um die letzte Übertragung von Meister (er würde noch auf der Festplatte existieren und über das Reflog erreichbar sein, bis sein Eintrag im Reflog abläuft).
Wie kann ich HEAD auf den letzten Commit verweisen, mit dem ich arbeite?
HEAD
ist immer das Commit, von dem aus Sie arbeiten, egal ob es losgelöst ist oder nicht.
Wenn Sie meinen: "Wie kann ich die Meister zum letzten Commit, mit dem ich arbeite", dann ist das dasselbe wie die Frage "Wie kann ich die Meister zeigen auf HEAD
?". Die Antwort lautet
git branch -f master HEAD
(Sie können auch weglassen HEAD
da dies die Standardeinstellung ist). Dies setzt zwangsweise zurück Meister zu der aktuellen Übergabe an HEAD
. Alle Übertragungen auf Meister die nicht über einen anderen Zweig oder die aktuelle Verzweigung erreichbar sind HEAD
ist fortan nur noch über das Reflog erreichbar und wird schließlich garbage collected (das wirft, von Meister alles, was in Meister die nicht in HEAD
). Wahrscheinlich möchten Sie auch Ihre HEAD
zu diesem aktualisierten Master.
git checkout master
Anstelle der beiden obigen Befehle könnten Sie auch folgende Befehle einfügen HEAD
zuerst, dann zurücksetzen Meister mit diesen beiden aufeinanderfolgenden Befehlen:
git checkout master # reattach, commit at HEAD is now the unwanted commit
git reset --hard HEAD@{1} # reset master to the commit at HEAD before the prior command
Le site HEAD@{1}
Notation verwendet, um auf Einträge im Reflog zuzugreifen. Dieses Beispiel bedeutet einfach "der vorherige HEAD
" (d.h. "die Übergabe bei HEAD
vor der letzten Operation, die sich auf HEAD
").