Was ist der Unterschied zwischen HEADund masterin 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?

Was ist der Unterschied zwischen HEADund masterin 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?

Antworten:
masterist ein Verweis auf das Ende eines Zweigs. Standardmäßig (und standardmäßig) ist dies normalerweise der Hauptintegrationszweig, muss es aber nicht sein.
HEADist 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 masterZweigstelle engagieren möchten, klicken Sie hier.
Hier ist ein visuelles Beispiel:

In Ihrem eigenen Repository können Sie überprüfen, wohin das HEADzeigt, indem Sie Folgendes ausführen:
$ git symbolic-ref HEAD
refs/heads/master
Es remotes/origin/HEADist 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 HEADist ein Zeiger / eine Bezeichnung auf das letzte Commit des Zweigs, in dem Sie sich gerade befinden. masterist der Standardzweig, der erstellt wird, wenn Sie ein Git-Repository initialisiert haben (z git init. B. ).
Sie können den masterZweig löschen (zB git branch -D master). Sie können den HEADZeiger nicht löschen .
HEADist 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?
checkoutentspricht der Befehl für Git dem Wechseln von Zweigen in anderen gängigen SCM-Systemen.
HEADZeiger 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
git push origin
und es wird Ihren Zweig ' B' Änderungen an ' origin/B' verschieben.
Wenn Sie in Ihrem masterZweig sind, wird git auf drücken origin/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 HEADbestimmt den Standardzweig für diese Fernbedienung.
Siehe git remote set-headManpage :
Ein Standardzweig für eine Fernbedienung ist nicht erforderlich, ermöglicht jedoch die Angabe des Namens der Fernbedienung anstelle einer bestimmten Verzweigung.
Wenn beispielsweise der Standardzweig für festgelegtoriginistmaster,originkann er überall dort angegeben werden, wo Sie normalerweise angeben würdenorigin/master.