GitHub のリポジトリのデフォルトのブランチ名を変更する方法
先日 GitHub の CEO が、デフォルトのブランチ名に奴隷制を連想させる master
という名前を使うのをやめて代わりに main
を使っていく旨の発言をしていました。
追記 2020/07/26: GitHub が master
から main
への移行に関するガイドを公開しました:
このあたりは人によって感じ方が違うところなので客観的に見てどうかはわかりませんが、個人的には master / slave という用語を初めて目にしたときに「 slave っておい!」と感じたのでこの流れには肯定的です。
ただ、ブランチ名の master
がダメということになると、 master ということばは slave とペアになっていなくても単体でもダメという位置づけにもなってきそうです。
私はプロフィール欄に「修士課程修了」を意味する「 Master of Engineering 」を書くとき「字面と響きがかっこよくていいなぁ」とよく思いますが、これがたとえば junior doctor 〜や subdoctor 〜のような言い方(あくまでも例です)になると「マスター!オブ!エンジニアリング!」の「なんだか強そう感」が失われるのが少し惜しい気もします。
ともあれ、進歩していくのはよいことですね。
本題に戻って、 GitHub のリポジトリのデフォルトのブランチ名を変更する方法です。
デフォルトのブランチ名を master
から main
に変える場合を考えます。
リポジトリをすでにチェックアウトしている場合、手順は次のとおりです。
- ローカルで
master
ブランチをmain
に変える - GitHub に
main
ブランチを push する - GitHub で
main
をデフォルトブランチに設定する - GitHub の
master
ブランチを削除する - 関連サービスで影響を受ける部分を変更する
# 1. ローカルの `master` ブランチの名前を `main` に変更するgit branch -m master main# 2. GitHub に `main` ブランチを push する# あわせてアップストリームとしてセットしておくgit push -u origin main# 3. GitHub で `main` をデフォルトブランチに設定する# これはブラウザでリポジトリの Settings → Branches で行います# 4. GitHub の `master` ブランチを削除するgit push origin :master
もし CI 等の関連サービスで master
ブランチを使っている部分があればそのあたりも切り替えます。
ただし、影響範囲が広い場合は無理にやらない方がよいかなと思います。
リポジトリをチェックアウトしていない場合は、ひとつずつチェックアウトして切り替えるか、チェックアウトせずに GitHub の API を使って切り替えるかという選択肢になるでしょうか。 後者のためのスクリプトは検索すればいくつか見つかります。 その中に信頼できそうなものがあれば使うとよいですが、万が一の事故が起こらないようにだけ注意が必要です。