ご存知の方も多いと思いますが、2020年10月1日よりGitHubではプロジェクト作成時点でのデフォルトのブランチ名が master
から main
に変更されました。
また、7月27日にリリースされた git バージョン 2.28 からはデフォルトブランチの変更オプションが実装されているので、これにより main
ブランチに対応できるようになっています。
本記事ではこちらの設定手順についてご説明します。
TL;DR
- git 2.28 (GitHubの変更時点での最新版) ではデフォルトブランチはmasterのままである
- デフォルトブランチを変えるには、まずgitを 2.28 に更新する
- その後
git config --global init.defaultBranch main
をCLIで実行するか.gitconfig
を変更すれば対応完了
変更の背景
Git関連の複数のコミュニティではGitのデフォルトブランチ名 master
について変更すべきではという議論があります。詳しくはここで語りませんが、もともと業界では master/slave といった用語が一般的に使われていて、この言葉のニュアンス(master:主人 slave:奴隷)が差別的だから変えようという流れがあり、GitHubとgitもそれぞれの方法で対応を行った形となります。
対応方法
前述の通りGitHubでは10月1日よりプロジェクトのデフォルトブランチを master
から main
に変更しており、gitそのものもmasterブランチがデフォルトしてハードコードされてはいるものの、 7月27日のバージョン2.28から init.defaultBranch
というオプションを追加することによって対応できるようになりました。
対応方法についてはブランチ名変更について記載しているGitHubの資料でも触れられています。
(中略)
Git 2.28 added a similar setting to control the default branch used when you run git init on the command line. Learn more about the new init.defaultBranch setting in the Git 2.28 blog post.
init. defaultBranch
オプションでデフォルトブランチを変更できるということで、以下のコマンドを実行することで対応できます(全く同じコマンドがGit 2.28 のブログポストにも記載されています)
git config --global init.defaultBranch main
またはグローバルの .gitconfig
に以下を追記しても対応できます。
個人的に設定を管理されている方はこちらのほうが便利かと思います。
[init]
defaultBranch = main
まとめ
今回はGitHubがプロジェクトデフォルトのブランチ名の変更したということで、git側での対応方法について記載しました。
ただ現時点ではBitbucketではデフォルトのリポジトリ名は master
のままですし、ベンダーによって対応が変わってくるので一概にプロジェクトデフォルトを main
に合わせていくのがが正解とは言えず、会社の判断やそれぞれの環境に合わせて適切な設定をしていくのが良いかと思われます。