As most people will be aware, GitHub, Gitlab and Azure DevOps announced that they will change the default behaviour of their git implementations. Instead of the racially loaded
master term they will use a more neutral branch name.
That’s great news I believe, but will not necessarily cover all scenarios. For example, when development begins on someone’s local device.
Typically, when I start work on something I don’t straight away go and create a new repository on any of the platforms but I create a directory on my laptop and then execute
git init inside that folder. This causes git to create the scaffolding for this new repo, including a pointer for
This branch is not actually created at this point. Only when a user goes and commits for the first time does this
master branch get created.
Usually, I also don’t focus too much on the branch but go straight into writing code or documentation and commit, and then notice that I was still on
This not so well-known fact is one I’m going to use to never have to worry about
master again but from this moment forward will always use
main as my default branch (and all repositories created by XIRUS for that matter).
Git supports aliases if you weren’t aware and they’re easy to configure. For global aliases that apply to all repositories ever on your machine you execute something like this:
git config --global alias.co checkout
Now, whenever you type
git co you will actually do
git checkout, much nicer.
I have not been able to overwrite built-in commands like
Main as default git branch
The following git alias will cause git to always create new repositories with the first branch name being
main instead of
git config --global alias.init2 '! git init && git checkout -b main'
As I mentioned, I have not been able to overwrite built-in commands, so I opted to use
init2 as the alias. Executing
git init2 will now create git repositories exactly as I want.
I tested this on Windows 10 with WSL2. Let me know if you have issues on other platforms.