58 lines
1.8 KiB
Markdown
58 lines
1.8 KiB
Markdown
|
---
|
|||
|
title: 'default branch name'
|
|||
|
date: 202101101526.29
|
|||
|
tags:
|
|||
|
- 'git'
|
|||
|
- 'linux'
|
|||
|
- 'dev'
|
|||
|
---
|
|||
|
|
|||
|
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 overriden 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](https://blacklivesmatter.carrd.co/), and get out there to fix
|
|||
|
the actual problems.
|
|||
|
|
|||
|
## 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
|
|||
|
|
|||
|
tags: [git](tag_git.html), [linux](tag_linux.html), [dev](tag_dev.html)
|