Gitリポジトリ作成時のデフォルトブランチ名がmainとなるように設定する
はじめに
こちらもいずれやらないとなぁと思ったままお座なりになっていたローカル環境の設定です。
「 シェルで Github リポジトリの master ブランチの名前を main ブランチに変更する」というエントリでもお話しましたが、
Github リポジトリを新規に作成した場合のデフォルトブランチ名が master
から main
に変更となっています。(もう随分前の話ですね。)
そんな時代の流れとは裏腹に、自分の PC で git init
し Git リポジトリを新規作成した際のデフォルトブランチ名が未だに master
となっています。
少しでもおっさん化の流れに抵抗する必要があるということで、 git init
したときに作られるデフォルトブランチ名を main
にするための設定をしようと思いました。
検証環境
$ uname -moi
x86_64 MacBookPro16,1 Darwin
$ bash -version | head -n 1
GNU bash, version 5.1.8(1)-release (x86_64-apple-darwin20.3.0)
$ git --version
git version 2.31.1
今回の作業の前提
当然のことながら git
コマンドが使えるようになっている必要があります。
加えて、 Git のバージョンが 2.28 以降でなければいけません。
僕の環境は以下の通り、 2.28 以降でした。
$ git --version
git version 2.31.1
Git の新しい設定として init.defaultBranch
が追加されています
Git 2.28 より前のバージョンでは、 git init
コマンドでリポジトリを新規作成した場合、常に master
というブランチがデフォルトで作成されていました。
Git 2.28 からは、新しい設定項目として init.defaultBranch
が追加されています。 ( そこそもこれまでは master
という文言が Git ソースコードにハードコードされていました。 )
この設定項目に設定した値を使って、デフォルトブランチを作成するように修正されています。
僕の作業用 PC では、 init.defaultBranch
が設定されていないため、今まで通り master
という名前でデフォルトブランチが作成されていました。
ちなみにこちらの設定を行っても、すでに存在する Git リポジトリには影響を与えません。
もし既存の Git リポジトリに対しても master
から main
というリネームを行いたい、という場合は以下のエントリを参照ください。(リネーム用のスクリプトを公開しています。)
init.defaultBranch
を設定するための手順
設定は簡単です。
以下のコマンドを作業用 PC で実行するだけです。
$ git config --global init.defaultBranch main
それでは設定を進めていきます。
その前に、一度 git init
して作成されるデフォルトブランチを見ておきます。
# 適当な作業用ディレクトリを作成し、移動しておきます。
$ mkdir -p work
$ cd work
$ git init
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
Initialized empty Git repository in /private/tmp/work/.git/
# 現在のブランチを確認
$ git branch --show-current
master
はい、 master ブランチが作成されています。
( ちなみにメッセージをしっかり読めばわかるのですが、 init.defaultBranch を設定して master という文言から変えましょうって提案してくれています。ちゃんと読んでおけば。 )
それでは、今後 git init
したときに作成されるデフォルトブランチを main
となるように設定します。
$ git config --global init.defaultBranch main
再度確認してみます。
# 適当な作業用ディレクトリを作成し、移動しておきます。
$ mkdir -p work2
$ cd work2
$ git init
Initialized empty Git repository in /private/tmp/work/work2/.git/
# 現在のブランチを確認
$ git branch --show-current
main
正しく変更されました。
init.defaultBranch
を設定しよう!というメセージも表示されなくなりましたね。
ひとこと
新しい PC に移行したり、サーバ構築したときにこの作業忘れるっていうのが発生しそうな気がします。。。
ブランチに master
という文言が入っているリポジトリがあったら通知する、みたいなものもあったほうが良さそうですね。
ディスカッション
コメント一覧
まだ、コメントがありません