From my survey of the codebase and my experience with repositories that don't have a master
branch, I'd say you're in the clear.
At worst, the are a couple of edge cases where not being explicit will cause a command failure instead of falling back to a master
branch.
git clone
sets up a master
branch by default when no remote refs are found and the --bare
flag wasn't specified (builtin/clone.c)
git fast export
with the --anonymize
flag leaves master
alone, since it's a well-known default and doesn't communicate anything (built-in/fast-export.c)
- merge commit messages are customized based on the target branch (i.e. "Merge branchx" vs. "Merge branchx into branchy") (builtin/fmt-merge-msg.c)
git init
uses master
as the default branch name (builtin/init-db.c)
git submodule
defaults to master
when a branch name isn't specified (builtin/submodule--helper.c)
(the git-remote.c
and files-backend.c
outputs from below don't actually interact with the master
branch)
The list above was compiled by using the following git grep
on the git repository.
# Look for string literals within *.c files containing "master"
# with 10 lines of context, excluding the t/ and contrib/ directories
$ git grep -C 10 -E -e \".*master.*\" -- :**/*.c :^t/ :^contrib/