Au fur et à mesure que j'apprends à connaître git, je n'arrête pas de rencontrer les termes HEAD, master, origin, et je ne sais pas quelles sont les différences. Si je comprends bien, HEAD est toujours égal à la dernière révision? Et si oui, est-ce la dernière révision de tout le référentiel, ou d'une branche ou d'une balise spécifique? C'est tellement déroutant. J'ai lu tellement de didacticiels à ce sujet et des choses comme la création de branches / fusions, mais je n'arrive toujours pas à comprendre.
207
“This is so confusing… but still can't wrap my head around it.”
Je vois ce que tu as fait là-bas… 😉Réponses:
Je recommande vivement le livre "Pro Git" de Scott Chacon . Prenez le temps et lisez-le vraiment, tout en explorant un véritable dépôt git comme vous le faites.
HEAD : le commit actuel de votre repo est activé. La plupart du temps, il s'agit
HEAD
du dernier commit dans votre branche actuelle, mais ce n'est pas forcément le cas.HEAD
signifie simplement "ce que mon repo pointe actuellement".Dans le cas où le commit
HEAD
fait référence n'est pas la pointe d'une branche, cela s'appelle une "tête détachée".master : le nom de la branche par défaut que git crée pour vous lors de la première création d'un repo. Dans la plupart des cas, «maître» signifie «la branche principale». La plupart des magasins demandent à tout le monde de maîtriser, et master est considéré comme la vue définitive du repo. Mais il est également courant que les branches de publication soient créées à partir de master pour la publication. Votre dépôt local a sa propre branche principale, qui suit presque toujours le maître d'un dépôt distant.
origin : le nom par défaut que git donne à votre référentiel distant principal. Votre boîte a son propre repo, et vous poussez probablement vers un repo distant vers lequel vous et tous vos collègues poussez. Ce dépôt distant est presque toujours appelé origine, mais ce n'est pas obligatoire.
HEAD
est une notion officielle dans git.HEAD
a toujours une signification bien définie.master
etorigin
sont des noms communs généralement utilisés dans git, mais ils ne doivent pas l'être.la source
HEAD
n'est pas la dernière révision, c'est la révision actuelle . Habituellement, il s'agit de la dernière révision de la branche actuelle, mais ce n'est pas obligatoire.master
est un nom communément donné à la branche principale, mais il pourrait être appelé n'importe quoi d'autre (ou il pourrait ne pas y avoir de branche principale).origin
est un nom communément donné à la télécommande principale. remote est un autre référentiel à partir duquel vous pouvez extraire et pousser. Habituellement, c'est sur un serveur, comme github.la source
git checkout v1.1
), votre HEAD se transforme en commit de cette balise. Ce n'est peut-être pas le dernier commit.Bien que cela ne réponde pas directement à la question, il existe un excellent livre disponible gratuitement qui vous aidera à apprendre les bases appelées ProGit . Si vous préférez la version en bois mort à une collection de morceaux, vous pouvez l'acheter sur Amazon .
la source