0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Git、GitHubそれぞれで、リポジトリ作成時のデフォルトブランチを設定する方法

Posted at

昨年より、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
Repository default branch

最初にアクセスすると 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上で変更する際に、どのようなコマンドを打てば良いのかが出てくるので、そちらをローカルで実行する必要があります。
Rename this branch

詳しくはこちら 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 で良いのかもしれませんね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?