La différence entre la TÊTE et le maître
Quelle est la différence entre le HEAD
et master
dans Git?
J'ai fait un clone d'un projet sur GitHub et veulent pousser mes changements de la télécommande. Mais à qui dois-je pousser?
Vous devez vous connecter pour publier un commentaire.
master
est une référence à la fin d'une branche. Par convention (et par défaut) c'est généralement la principale direction de l'intégration, mais il n'a pas à être.HEAD
est en fait un type spécial de référence qui pointe vers une autre référence. Il peutmaster
ou il peut ne pas (il sera fait selon la branche est en cours d'extraction). Si vous savez que vous voulez être commis à l'master
branche puis poussez-la à ce.Voici un exemple visuel:
Sur votre propre référentiel, vous pouvez vérifier où le
HEAD
est pointé par l'exécution de cette:Cependant, trouver où l'
remotes/origin/HEAD
pointe est plus délicat car il est sur la machine distante.Il est un peu grand tutoriel sur git références ici:
http://people.gnome.org/~federico/news-2008-11.html#poussant et tirant-avec-git-1
La réponse est simple,
HEAD
est un pointeur/étiquette de la plus récente validation de la direction générale vous êtes actuellement sur.master
est la branche par défaut créé lors de l'initialisation d'un dépôt git (par exemplegit init
).Vous pouvez supprimer le
master
branche (par exemplegit branch -D master
). Vous ne pouvez pas supprimer leHEAD
pointeur.HEAD
est un pointeur/étiquette de la plus récente validation de la direction générale vous êtes actuellement sur." Je pense que c'est trompeuse. Si vous commander un ancien de valider, puis la TÊTE est maintenant un pointeur pour que les plus âgés s'engager, de ne pas la plus récente s'engager. Droit?checkout
de commande est l'équivalent de la commutation des succursales dans d'autres communes des systèmes SCM.HEAD
pointeur est vraiment. Je vous remercie de votre commentaire et de penser à d'autres le seront aussi. Mon post original du contenu avec votre suivi de commentaires complètent les uns les autres. Merci.Il suffit de pousser les changements de votre branche courante
et il va pousser votre branche
B
' devient 'origin/B
'.Si vous êtes sur votre
master
branche, git va pousser àorigin/master
.En fait, il va pousser tous les changements sur les sections locales qui ont des branches distantes à
origin
. Il est contrôlé par le paramètre de configuration push.par défaut.Voir aussi poussant RefSpecs dans le Pro Git livre.
Ce que vous voyez est la barre latérale représentant tous les refspecs de votre télécommande repo dans le Expérimentale GitX fourche de la GitX projet.
La
HEAD
désigne la branche par défaut pour cette distance.Voir
git remote set-tête
de la page de manuel: