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 checkout master git branch -m master main
-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.
now i just need to figure out why my ssh config doesn't copy/symlink my config to ~/.ssh when it already exists.
did you know that
~/.ssh/config aliases work for git remotes??
Host gh HostName github.com User git IdentityFile ~/.ssh/gh_key
you can now use
gh:username/repo as the remote in place of
firstname.lastname@example.org:username/repo, which is much shorter and easier to type many times!
git clone gh:benharri/learngit
there are many other use cases for the
ssh_config file. for example, here is my config for the tilde machine for easy ssh connections.
Host tilde HostName tilde.team User ben
ssh tilde to start a new ssh session. this also works with
scp: try something like this
scp file.txt tilde:workspace/. in place of
scp file.txt email@example.com:workspace/.
the ssh_config file is super useful. check
man ssh_config for a full list of options!