昨年より、GitHubで作成されたリポジトリのデフォルトブランチは main
になりました。
The default branch for newly-created repositories is now main
また、Gitプロジェクトとしても初期ブランチ名をmaster以外に変更する検討が進められています。
Regarding Git and Branch Naming
(上記リンクはこちら、 github/renamingから飛ぶことができます。)
現状、Gitではmasterブランチがデフォルトブランチとして自動的に作成されますが、バージョン2.28より、初期ブランチが指定できるようになりました。
Gitでデフォルトのブランチを変更する
##環境
- Mac
- git version 2.30.0
##説明
gitのバージョンが2.28以上である必要があります。
2.28で使えるようになった init.defaultBranch
を使います。
新規リポジトリを作成する場合にデフォルトブランチを main
にしたい場合は以下のコマンドを実行します。
$ git config --global init.defaultBranch main
この先gitコマンドで新しく作成するリポジトリのデフォルトブランチは main
になります。既存のリポジトリのデフォルトブランチが変更されることはありません。
##実験
init.defaultBranch
に何も設定していない状態でリポジトリを作成すると、デフォルトブランチは master
になります。
$ mkdir sample
$ cd sample
$ 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 /xxxx/sample/.git/
$ touch test.txt
$ git add .
$ git commit -m "first commit"
[master (root-commit) c05650c] first commit
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 test.txt
$ git branch
* master
git init
を行うと、 hint
としてデフォルトブランチの名前を変えられること、既存ブランチのrenameの方法も出力されていますね。
続いて、デフォルトブランチを main
にしてみます。
git config --global init.defaultBranch main
この状態でリポジトリを作成してみます。
$ mkdir sample-main
$ cd sample-main
$ git init
Initialized empty Git repository in /xxxx/sample-main/.git/
$ touch test.txt
$ git add .
$ git commit -m "first commit"
[main (root-commit) 563d9a9] first commit
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 test.txt
$ git branch
* main
デフォルトブランチが main
になりました。
GitHubでデフォルトのブランチを変更する
##説明
GitHubでもデフォルトのブランチを変更することができます。 main
から変更する理由はあまりないかなと思いますが、CIだったりなんらかの理由で master
にしたいこともあるかもしれません。
###個人アカウント配下リポジトリ
以下のリンクにアクセスし、 Repository default branch
を変更します。
https://github.com/settings/repositories
最初にアクセスすると main
になっています。こちらを master
、もしくはデフォルトにしたいブランチを入力し Update ボタンを押すことで設定完了です。
###GitHub Enterprise、Organization配下リポジトリ
それぞれ以下のリンクにアクセスし、変更します。
https://github.com/organizations/YOUR-ORGANIZATION/settings/repository-defaults
https://github.com/enterprises/YOUR-ENTERPRISE/settings/member_privileges
##既存のリポジトリのデフォルトブランチをrenameする
GitHub上で、既存のリポジトリのデフォルトブランチを変更することができます。
GitHub上のリポジトリ > Settings > Branches > Default branch を変更します。
こちらでGitHub上のデフォルトブランチをrenameすることはできますが、このリポジトリをcloneしているメンバーのローカルのブランチ名は変わりません。Web上で変更する際に、どのようなコマンドを打てば良いのかが出てくるので、そちらをローカルで実行する必要があります。
詳しくはこちら Renaming existing branches を参照ください。
#最後に
Regarding Git and Branch Naming には以下のような記述があります。
As a first step, Git will add a mechanism to allow users to specify the default used as the name of the first branch when creating a new repository.
今後、 init.defaultBranch
の値のデフォルト値そのものが main
になるんではないかと思われます。この点を考えると、今後作るリポジトリのデフォルトは main
で良いのかもしれませんね。