Git 2.28.0 でdefault branchをmaster以外に変更する方法 init.defaultBranch を試す (2020年10月1日GitHubはdefault branchの強制変更)
git 2.28.0がリリースされた
BLM運動に対応したgit 2.28.0がリリースされました。
github.blog
gitのdefault branchを自由に変更できるという対応です。(他にも色々なバグフィックスもあります)
gitのdefault branchはハードコーディングされているということだったので設定を追加することで対応したようです。
default branchの設定が無いときはmasterのままで、default branchの設定が有るときは、その設定値になります。
どうなるのか?せっかくだから試してみました。
なお、GitHub ActionsのCheckoutプラグインは変更済みです。
kawahara-ci.hatenablog.com
git 2.28.0を試してみましょう!
適当なディレクトリーでgit init
を実行します。
その後.git/HEAD
ファイルを確認するとmaster
のままです。
git branch --show-current
で確認します。
master
のままですね。
gitのバージョンを2.28.0にアップデートします。
.git
ディレクトリーを消しておいてから、git 2.28.0リリースブログに記載の通りgit config --global init.defaultBranch main
を打って設定を変更します。
そしてgit init
を実行して、その後.git/HEAD
ファイルを確認するとmain
に変わりました!
git branch --show-current
で確認します。
main
に変更されています!!
~/.gitconfig
ファイルも設定が変わっていることが確認できます。
※git config --global init.defaultBranch main
を使用しないときはgit init
後にgit branch -M main
としてください。
変わったことを確認したら、GitHubでrepositoryを作成してみます。
2020年7月29日の時点ではgit push -u origin master
のままです。
GitHubにpushしてみましょう。
試しにgit push -u origin master
と実行してもエラーになりますが、git push -u origin main
と実行すると成功します。
※なお、既存リポジトリーに対してgit init
してReinitializedしてもgit branch --show-current
の内容も.git/HEAD
ファイルの内容は変更されません。
変更するときはgit branch -M main
を使います。
今すぐ、brunchを変える必要性は低いですが、将来的にはbrunchはmainに変わっていくだろうと思いますので、git 2.28.0 にバージョンアップしたらgit config --global init.defaultBranch main
と設定を変更しておくと良いと思います。
2020年10月1日以降に訪れた方へ
git push したらnew branch としてmasterが作られた!
そんな事がありましたか?
2020年10月1日に、GitHubではmaster branchがmain branchに強制変更されております。
慌てずにmain branchにmergeして、git fetch
して git checkout main
して git pull
しましょう。
2020年8月27日更新 GitHubはdefault branch強制変更を表明
上で「将来的にはbrunchはmainに変わっていくだろうと思います」と言いましたが、default branchがmaster branchのときはmain branchに強制的に変更されることが発表されました。
今後のためにもgit 2.28 をインストールしてdefault branchの変更設定をしておくことをオススメします。
登録済みRepositoryをmainに変更する
右側のメニューからSettingを選びます。
SettingからRepositoryを選びます。
Change default branch name now を押下すると自分の所有しているRepositoryを一気に変更します。
参加しているグループも一気に変更するので、変更するときは事前にグループでお話をしてからにしましょう。
以下のRepository個別対応が、今のところオススメです。
Repository個別対応
変更するRepositoryを選びます。
branch を押下する。
main と入力して、Create branch: main を押下する。
main に切り替わりました。
しかしdefaultには切り替わっていません。
branchesを押下すると、一番上にdefault branchがあるので、Change default branchを押下します。
mainを選択してください。
Updateを押下します。
確認画面が出ます。
完了です。
なお、コマンドでは既存Repositoryのdefault branch変更はできません。
コマンドラインでできるのはbranchの追加か、branch名の変更だけです。
branch名の変更をコマンドで行うときは以下のとおりです。
git branch -M main git remote set-head origin main git push -u origin main
GitHubでデフォルトbranchをmainに変更したら。
以下のコマンドでmasterが消せます。
git push origin :master
おまけ
2020年8月27日にGitHubのサイトを確認するとbranchの新規作成後のメッセージでgit branch -M master
が追加されていました。
2020年10月1日からはgit branch -M main
に変わるでしょう。
2020年7月29日のスクリーンショットです。
2020年8月27日のスクリーンショットです。