Month: June 2020

  • Default git branch name

    Update:

    As of git 2.28, there’s a new configuration option and you don’t need to use the templateDir option:

    git config --global init.defaultBranch main

    Changing git’s default branch name has come up recently as an easy action we can take to update our language and remove harmful ideas from our daily usage.

    I’m concerned that this effort to change the language used is ultimately a symbolic gesture to avoid scrutiny into actual change (notably github’s push for this change and continued contracts with ICE).

    However, it’s an easy change to make.

    Let’s have a look at how to change it for new repos:

    mkdir -p ~/.config/git/template
    echo "ref: refs/head/main" > ~/.config/git/template/HEAD
    git config --global init.templateDir ~/.config/git/template

    Note that you can put this template dir anywhere you like.

    You can also set this system-wide (not just for your user) in /usr/share, but note that this might get overridden by package updates.

    echo "ref: refs/head/main" | sudo tee /usr/share/git-core/templates/HEAD

    The next time you git init, you’ll be on a branch named main.

    To change an existing repo, you can use the -m switch of git-branch:

    git checkout master
    git branch -m master main

    Push with -u to your remote if needed and update the default branch in the repo settings in the hosting platform of choice.

    It’s a relatively easy change, but don’t kid yourself that it makes any real impact. go protest, donate and sign petitions, and get out there to fix the actual problems.