Was ist der Unterschied zwischen HEAD
und master
in Git?
Ich habe einen Klon eines Projekts auf GitHub erstellt und möchte meine Änderungen auf die Fernbedienung übertragen. Aber auf welches soll ich drängen?
master
ist ein Verweis auf das Ende eines Zweigs. Standardmäßig (und standardmäßig) ist dies normalerweise der Hauptintegrationszweig, muss es aber nicht sein.
HEAD
ist eigentlich eine spezielle Art von Referenz, die auf eine andere Referenz verweist. Es kann auf zeigen master
oder nicht (es zeigt auf den Zweig, der gerade ausgecheckt ist). Wenn Sie wissen, dass Sie sich für die master
Zweigstelle engagieren möchten, klicken Sie hier.
Hier ist ein visuelles Beispiel:
In Ihrem eigenen Repository können Sie überprüfen, wohin das HEAD
zeigt, indem Sie Folgendes ausführen:
$ git symbolic-ref HEAD
refs/heads/master
Es remotes/origin/HEAD
ist jedoch schwieriger herauszufinden, wohin das zeigt, da es sich auf dem Remote-Computer befindet.
Hier gibt es ein tolles kleines Tutorial zu Git-Referenzen:
http://people.gnome.org/~federico/news-2008-11.html#pushing-and-pulling-with-git-1
Die einfache Antwort lautet: Dies
HEAD
ist ein Zeiger / eine Bezeichnung auf das letzte Commit des Zweigs, in dem Sie sich gerade befinden.master
ist der Standardzweig, der erstellt wird, wenn Sie ein Git-Repository initialisiert haben (zgit init
. B. ).Sie können den
master
Zweig löschen (zBgit branch -D master
). Sie können denHEAD
Zeiger nicht löschen .quelle
HEAD
ist ein Zeiger / eine Bezeichnung auf das letzte Commit des Zweigs, in dem Sie sich gerade befinden." Ich denke, das ist bestenfalls irreführend. Wenn Sie ein älteres Commit auschecken, ist HEAD jetzt ein Zeiger auf dieses ältere Commit und nicht auf das letzte Commit. Richtig?checkout
entspricht der Befehl für Git dem Wechseln von Zweigen in anderen gängigen SCM-Systemen.HEAD
Zeiger wirklich ist. Ich freue mich über Ihren Kommentar und denke, dass andere dies auch tun werden. Der Inhalt meines ursprünglichen Beitrags und Ihr nachfolgender Kommentar ergänzen sich gegenseitig. Vielen Dank.Drücken Sie einfach die Änderungen Ihrer aktuellen Filiale
und es wird Ihren Zweig '
B
' Änderungen an 'origin/B
' verschieben.Wenn Sie in Ihrem
master
Zweig sind, wird git auf drückenorigin/master
.Tatsächlich werden alle Änderungen auf die lokalen Zweige übertragen, bei denen übereinstimmende entfernte Zweige vorhanden sind
origin
. Es wird durch die Konfigurationseinstellung push.default gesteuert .Siehe auch RefSpecs im Pro Git-Buch .
Was Sie sehen, ist die Seitenleiste, die alle Refspecs Ihres Remote-Repos in der experimentellen GitX-Gabel des GitX-Projekts darstellt .
Das
HEAD
bestimmt den Standardzweig für diese Fernbedienung.Siehe
git remote set-head
Manpage :quelle