GitHub リポジトリの既定ブランチ名が main になるらしい

no extension

Twitter の TL で見かけたんだけどさ。

不覚にも3秒位「???」ってなっちゃったYO。

あ゙ー,あれね。 サービス・プロバイダやオープンソースな人たちが挙って「差別用語を狩ろう」っちう “Virtue Signaling” なやつの一環ね。

なんでも

On October 1, 2020, if you haven’t changed the default branch for new repositories for your user, organization, or enterprise, it will automatically change from master to main.
via Set the default branch for newly-created repositories - GitHub Changelog

だそうで,何もしなかったら 2020-10-01 以降の新規作成リポジトリの既定ブランチが main になるらしい。 既存のリポジトリには影響しないし設定画面で既定ブランチをあらかじめ指定しておくことで回避することも可能である(リポジトリ毎に既定ブランチを指定することもできるみたい)。

個人的にはこういう政治広告に巻き込まれたくないんだけど,名前を変えること自体はさしたる手間ではないし,吝かではないといったところか。 強いていうなら CI サービス周りの対応次第かな。

Git リポジトリの既定ブランチ名を指定するには

Git の設定で既定ブランチ名を変更するには,以下のコマンドラインで無問題1

$ git config --global init.defaultBranch foo

これで $HOME/.config/git/config (または $HOME/.gitconfig) ファイルに

[init]
  defaultBranch = foo

が追加される。

また git init コマンドで

$ git init --initial-branch=foo myrepo

とすれば foo ブランチで初期化してくれるので,そのまま既定ブランチとして使えばよい。

【2020-10-17 追記】 リモートにある Git リポジトリの既定ブランチ名を取得するには

Git の既定ブランチというのは要するに HEAD が指すブランチなので,リモートにある git リポジトリの既定ブランチ名を(clone しないで)取得するには

$ git ls-remote --symref https://github.com/git/git HEAD
ref: refs/heads/master	HEAD
a5fa49ff0a8f3252c6bff49f92b85e7683868f8a	HEAD

などとすればいいようだ。 これでリポジトリ https://github.com/git/git の既定ブランチが master であることが分かる。

リポジトリ名のみ取り出したければ,たとえば sed コマンドと組み合わせて

$ echo `git ls-remote --symref https://github.com/git/git HEAD | sed -n 's/^ref: refs\/heads\/\(.*\)\s\+HEAD$/\1/p'`
master

とかできるらしい。

ブックマーク

参考図書

photo
Virtue Signaling: Essays on Darwinian Politics & Free Speech (English Edition)
Miller, Geoffrey (著)
Cambrian Moon 2019-09-17 (Release 2019-09-17)
Kindle版
B07Y29NV9P (ASIN)

shorebird さんによる書評はこちら。邦訳版があるなら読んでみたい。

reviewed by Spiegel on 2020-07-07 (powered by PA-APIv5)

photo
ちびくろサンボ
ヘレン・バナーマン (著), フランク・ドビアス (イラスト)
径書房 2008-06-16
単行本
4770501994 (ASIN), 9784770501998 (EAN), 4770501994 (ISBN)

イラスト等原書に近い内容らしい。これは紙のほうがいいかな。

reviewed by Spiegel on 2020-07-07 (powered by PA-APIv5)


  1. 既定ブランチ名の指定は git 2.28 から使えるようだ。 ↩︎