Was ist der Kopf in git?
Scheint es einen Unterschied zwischen dem letzten commit, der KOPF und der Status der Datei kann ich finden in meinem Verzeichnis.
Was ist KOPF, was kann ich tun und welche Fehler sollte ich vermeiden?
InformationsquelleAutor der Frage e-satis | 2010-03-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
KOPF ist ein Verweis auf den letzten commit in den aktuell ausgecheckten branch.
Gibt es eine kleine Ausnahme, die die abgetrennten KOPF. Ein freistehende LEITER ist die situation, die Sie am Ende in, wenn Sie schauen Sie sich eine Begehen (oder-tag), anstatt eine Niederlassung. In diesem Fall müssen Sie sich vorstellen, dies als eine vorübergehender Zweig, der ohne Namen; also anstatt eine benannte Niederlassung verweisen wir nur KOPF. Es wird immer noch erlauben, Sie zu machen, begeht (die update-LEITER), so dass die obige kurze definition ist immer noch wahr, wenn Sie denken, einer abgetrennten KOPF, als ein vorübergehender Zweig, der ohne Namen.
InformationsquelleAutor der Antwort poke
HEAD
ist ein ref (Referenz) auf den aktuell ausgecheckten commit.In normalen Staaten, es ist ein symbolischer ref, um die Zweig, die Sie ausgecheckt haben - wenn Sie einen Blick auf den Inhalt .git/HEAD werden Sie etwas sehen wie "ref: refs/heads/master". Die Branche selbst ist eine Referenz auf den commit an der Spitze der Branche. Also, im Normalzustand
HEAD
effektiv bezieht sich auf den commit an die Spitze des aktuellen Zweiges.Es ist auch möglich, eine "detached HEAD". Dies geschieht, wenn Sie check-out etwas außer einem (lokalen) Zweig, wie ein remote-branch, einen bestimmten commit oder einem tag. Der häufigste Ort, um dies zu sehen, ist bei einer interaktiven rebase, wenn Sie wählen, zu Bearbeiten, zu Begehen. In freistehenden LEITER Stand, Ihr KOPF ist ein direkter Verweis auf einen Begehen - den Inhalt .git/KOPF wird ein SHA1-hash.
Generell, KOPF ist nur eine bequeme Bezeichnung zu bedeuten ", was Sie ausgecheckt haben," und Sie haben nicht wirklich zu viel sorgen. Nur bewusst sein, was Sie ausgecheckt haben, und denken Sie daran, dass Sie wahrscheinlich nicht wollen, zu Begehen, wenn Sie nicht auf einem Zweig (detached HEAD state), es sei denn, Sie wissen, was Sie tun (z.B. in einem interaktiven rebase).
InformationsquelleAutor der Antwort Cascabel
KOPF-Zeiger in Git
Git verwaltet eine Referenz-variable mit dem Namen " KOPF. Und nennen wir diese variable ein Zeiger ist, weil Ihr Zweck ist die Referenz, oder zeigen Sie auf, einen bestimmten commit in das repository. Wie machen wir neue verpflichtet sich der Zeiger ändern oder verschieben auf einen neuen commit. KOPF immer Punkte an die Spitze des aktuellen Zweiges in unserem repository. Nun, dies hat zu tun mit unserem repository, nicht unsere Inszenierung index oder unserem Arbeitsverzeichnis.
Einen anderen Weg zu denken, es ist der Letzte Stand unserer repository oder was wurde zuletzt ausgecheckt wurde, und weil es ist, wo das repository Links off oder der Letzte Zustand, man kann auch sagen, dass der KOPF Punkte zu den Eltern der nächsten commit oder es ist dort, wo verpflichten, schriftlich, stattfinden wird.
Ich denke, eine gute Metapher zu denken, dazu ist die Wiedergabe und Aufnahme Kopf auf einem Kassettenrekorder. Als wir starten die Aufzeichnung von audio, die Band bewegt sich vorbei an den Kopf, und zeichnet es auf. wenn wir die Taste Stop drücken, der Ort, wo, Rekord Kopf gestoppt wird, ist der Ort, es wird starten Sie die Aufnahme erneut, wenn wir drücken Sie Record ein zweites mal.Jetzt können wir bewegen, wir können den Kopf bewegen zu verschiedenen Orten, sondern überall dort, wo der Kopf positioniert ist, wenn wir uns treffen wieder Aufnehmen, die ist, wo es geht, um die Aufnahme zu starten.
Den KOPF-Zeiger in Git ist sehr ähnlich, es weist an der Stelle, wo wir gehen, um die Aufnahme zu starten weiter. Es ist der Ort, wo wir aufgehört haben in unser repository für die Dinge, die wir begangen haben.
InformationsquelleAutor der Antwort Suhail Gupta
Dies sollte schon einen Kommentar, aber es ist zu lang für einen commit
Ich dachte immer
HEAD~5
bedeutet, GEHEN Sie zu 5 engagiert vor.Es muss nicht tragen das GEHEN Teil des Befehls. Es trägt nur die Referenz/'wo' Teil des Befehls.
In Laie Begriffe, die verwendet wird, um die Frage zu beantworten: WO soll ich gehen? Zu was verpflichten?
Wenn Sie sagen
HEAD
es bedeutet (die Referenz auf) aktuellen commitHEAD~1
bedeutet (die Referenz auf) 1 Begehen, bevorHEAD~87
bedeutet (die Referenz auf) 87 verpflichtet, bevorgit checkout HEAD~1
wird tatsächlich GEHEN, dass Referenz - /commitInformationsquelleAutor der Antwort Honey