wake-up-neo.com

Unterschied zwischen HEAD und master

Was ist der Unterschied zwischen HEAD und master in Git?

Ich habe auf GitHub einen Klon eines Projekts erstellt und möchte meine Änderungen auf die Fernbedienung übertragen. Aber zu welchem ​​soll ich pushen?

screenshot

166

master ist eine Referenz auf das Ende eines Zweigs. Konventionell (und standardmäßig) ist dies normalerweise der Hauptintegrationszweig, muss es aber nicht sein.

HEAD ist eine spezielle Art von Referenz, die auf eine andere Referenz verweist. Es kann auf master verweisen oder nicht (es zeigt auf den Zweig, der gerade ausgecheckt ist). Wenn Sie wissen, dass Sie einen Commit für den Zweig master ausführen möchten, klicken Sie auf Push to this.

Hier ist ein visuelles Beispiel:

alt text

In Ihrem eigenen Repository können Sie überprüfen, wo das HEAD verweist, indem Sie Folgendes ausführen:

$ git symbolic-ref HEAD
refs/heads/master

Finden Sie jedoch heraus, wo die remotes/Origin/HEAD zeigt auf ist schwieriger, weil es sich auf dem Remote-Computer befindet.

Es gibt hier ein tolles kleines Tutorial zu Git-Referenzen:

http://people.gnome.org/~federico/news-2008-11.html#pushing-and-pulling-with-git-1

150
Lee Netherton

Die einfache Antwort lautet, dass HEAD ein Zeiger/eine Bezeichnung für das letzte Commit des Zweigs ist, in dem Sie sich gerade befinden. master ist der Standardzweig, der beim Initialisieren eines Git-Repositorys erstellt wurde (z. B. git init).

Sie können den Zweig master löschen (z. B. git branch -D master). Sie können den Zeiger HEAD nicht löschen.

32
benhorgen

Übertragen Sie einfach die Änderungen Ihrer aktuellen Filiale

git Push Origin

und es wird Ihren Zweig pushen 'B' ändert sich in 'Origin/B '.
Wenn Sie sich in Ihrem Zweig master befinden, wird git Push to Origin/master.
Tatsächlich werden alle Änderungen auf die lokalen Zweige übertragen, deren entfernte Zweige mit Origin übereinstimmen. Es wird durch die Konfigurationseinstellung Push.default gesteuert.
Siehe auch Drücken von RefSpecs im Pro Git-Buch .


Was Sie sehen, ist die Seitenleiste, die alle Refspecs Ihres Remote-Repos im Experimental GitX-Zweig des GitX-Projekt darstellt.

alt text

Das HEAD bezeichnet den Standardzweig für diese Fernbedienung.
Sehen git remote set-head man page :

Es ist nicht erforderlich, einen Standardzweig für eine Fernbedienung zu haben, aber der Name der Fernbedienung kann anstelle eines bestimmten Zweigs angegeben werden.
Wenn beispielsweise der Standardzweig für Origin auf master gesetzt ist, kann Origin überall dort angegeben werden, wo Sie normalerweise Origin/master.

8
VonC