Is Git’s "master" branch name more than just a name?
I am new to Git and I wonder if Git's "master" branch is anything more than a name?
I would not have thought so, until I saw people taking efforts to merge back not to any branch they feel their main branch but to the one named "master".
Does it have any special functionality? Or is it just as good as any other branch?
I did of course look at documentation, but the presence of the "master" branch is always treated as a given.
It's the default branch name for a fresh repository and therefore, while not technically special, has a special status in most cases.
People often use it as the "stable" branch.
That name references the HEAD
to the "default branch".
Note that after a git init
, even that default HEAD doesn't exist: you need to make at least one commit: see "Why do I need to explicitly push a new branch?".
You can see ' master
' used in the very few commits of Git itself in commit cad88fd (Git 0.99, May 2005)
git-init-db
: set up the full default environment
Create .git/refs/{heads,tags}
and make .git/HEAD
be a symlink to (the as yet non-existent) .git/refs/heads/master
.
Its associated tutorial at the time mentioned:
One note: the special " master
" head is the default branch , which is why the .git/HEAD
file was created as a symlink to it even if it doesn't yet exist.
Basically, the HEAD
link is supposed to always point to the branch you are working on right now, and you always start out expecting to work on the " master
" branch .
However, this is only a convention , and you can name your branches anything you want, and don't have to ever even have a " master
" branch.
A number of the git tools will assume that .git/HEAD
is valid, though.
No, technically it's just a name.
It is however the customary name for the central branch to which features ready for release are merged and everybody works off, just like in subversion the main branch is customarily called trunk
.
上一篇: 如何重命名主分支,并使另一个分支为主?