gotohayato.com

月(ダークモード)
太陽(ライトモード)

GitHub のリポジトリのデフォルトのブランチ名を変更する方法

2020/07/08GitHub

先日 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 に変える場合を考えます。

リポジトリをすでにチェックアウトしている場合、手順は次のとおりです。

  1. ローカルで master ブランチを main に変える
  2. GitHub に main ブランチを push する
  3. GitHub で main をデフォルトブランチに設定する
  4. GitHub の master ブランチを削除する
  5. 関連サービスで影響を受ける部分を変更する
# 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 を使って切り替えるかという選択肢になるでしょうか。 後者のためのスクリプトは検索すればいくつか見つかります。 その中に信頼できそうなものがあれば使うとよいですが、万が一の事故が起こらないようにだけ注意が必要です。


後藤隼人
ウェブサイト制作・ウェブアプリ開発やマーケティングをしています。
GitHub
© 2020 gotohayato.com
サイトについてタグアーカイブメッセージを送る