GitLab is now implementing a change to make the default branch “main” instead of “master”, following GitHub and Atlassian in ditching the “master/slave” namings due to their negative history.
It should be noted that this change this makes little difference to the functionality these sites provide, and to git repositories in general. Also, the default branch can be overridden.
When creating a blank initial repo in GitLab or GitHub (i.e. without a README.md file), the sites will prompt you to push code in using instructions such as this (GitLab haven’t yet implemented the master –> main change yet so it still shows
master on their instructions)
git clone email@example.com:username/example.git
git add README.md
git commit -m "add README"
git push -u origin master
But there’s nothing to stop you from doing something like
git push -u origin trunk
master at the time of pushing.
trunk is also one of the three folders used in Subversion Version Control as part of the recommended layout (
branches) — yes, I did use svn previously, along with Mercurial, Visual SourceSafe, and even cvs.
trunk is also a more logical sounding main branch as you have
branches that lead into the
trunk of a repo. And the leaves could be considered to be the
While it is great that the big name hosting platforms are migrating away from the
master branch idea, it should be noted that you didn’t have to have this default branch name originally, nor were you (or are you still) tied to using their choice of main branch name.