Wenn Sie einen direkten Namen begehen Kasse (unter Verwendung des SHA-1-Hash des Objekts Festschreibung) stattdessen einen Zweignamen der Check-out, am Ende mit einem „detached up KOPF". HEAD ist das "Ref", das den aktuell ausgecheckten Inhalt verfolgt. Es wird losgelöst, wenn Sie einen Commit anstelle eines Zweigs direkt auschecken (es ist keinem Zweig zugeordnet). Wenn Sie den HEAD eines Repositorys trennen, werden keine Zweige aktualisiert. Sie könnten an den losgelösten Kopfzustand denken, als ob Sie einen anonymen Zweig ausgecheckt hätten.
Um Ihre Repository HEAD wieder anbringen, werden Sie den aktuellen HEAD als Zweig speichern und diesen Zweig finden Sie unter:
Um den aktuellen HEAD in einem neuen Zweig zu speichern tun dies :
git branch <new-branch-name>
um eine bestehenden Zweig Sie müssen überschreibenverwenden:
git branch --force <existing-branch-name>
Dann Repository HEAD wieder anbringen, indem Sie die neue/aktualisierte Zweig Check-out:
git checkout <branch-name>
(wo <branch-name>
ist die gleiche wie <new-branch-name>
oder <existing-branch-name>
, je nachdem, welche der beiden oben genannten Befehle verwendet Sie)
diese Sequenz (git branch
einen ref Punkt zu machen zu dem aktuellen HEAD-Commit, dann git checkout
dieser aktualisierte Zweig) wird alle nicht festgeschriebenen Inhalte, die Sie möglicherweise in Ihrem Arbeitsindex und/oder Baum haben, weiterleiten.
In Zukunft, wenn Sie die aktuellen Zweig zu einem früheren zu ‚Rollback‘ wollen begehen, können Sie diese statt Abnehmen HEAD Ihr Repository verwenden soll:
git reset --hard <commit>
Dies wird zurückgesetzt der aktuelle Zweig (oder Ihr abgetrennter HEAD, falls dieser bereits getrennt ist) zum benannten Commit, und der Index und der Arbeitsbaum spiegeln dieses Commit wider (dh es verwirft alle Commits seit dem angegebenen Commit zusammen mit nicht festgeschriebenem Inhalt).
Der abgekoppelte HEAD-Zustand ist nützlich, um alte Zustände wiederzusehen, und manchmal für kurzfristige Arbeit, von der Sie nicht sicher sind, ob Sie sie behalten.Ansonsten möchten Sie es wahrscheinlich vermeiden.
Danke, das wird den Arbeitsbaum zurück in den Zweig verwandeln? – Bob
Dies ist wahrscheinlich das, was Sie anfangs hätten tun sollen, aber es wird Ihre Situation nicht beheben. Wenn dein KOPF noch getrennt ist, wird er nicht erneut an einen Zweig angeschlossen. Bitte sehen Sie meine Antwort. –
Es setzt Ihren aktuellen Kopf auf das angegebene Commit zurück. Sie müssen also den Checkout-Master (oder den Zweig, den Sie zurücksetzen möchten) zurückgeben und dann den Befehl "git reset" verwenden. – Chris