この記事では
- 改名したブランチを古いブランチから複製する
- 古いブランチを削除する
という手順を紹介しています。
ブランチを直接GitHub上で改名する場合は、以下の記事を参照してください。
はじめに
この記事は、GitHubリポジトリのデフォルトブランチを改名する手順を共有するためのものです。
必要となる情報はすべてインターネット上にありますが、分散しているため作業手順を1つの記事にまとめました。
前提とする環境
この記事は、以下の環境を前提に書かれています。
- git version 2.30.1
GitHubのUIは、2021/11/09時点のものを前提としています。GitHubのバージョンアップによりUIは変わりますのでご注意ください。
前提とするリポジトリ構成
この記事では、改名前のブランチ名をmaster
、改名後のブランチ名をmain
としています。ブランチ名はお手元の環境に合わせて読み替えてください。また、リモートリポジトリの名前はorigin
とします。
改名の手順
ローカルで、ブランチ名を変更する
git branch -m master main
このコマンドで、ローカルのmaster
ブランチがmain
ブランチに改名されます。-m
オプションは--move
の短縮表記です。
変更したブランチをリモートにpushする
git push -u origin main
改名したブランチをリモートにpushします。この時点で、リモートには改名前のmaster
ブランチとmain
ブランチが共存しています。
GitHub上で、デフォルトブランチを変更する
Settings
→Branches
→Default branch
の左右矢印ボタンを押すと、デフォルトブランチが切り替わります。
矢印ボタンが表示されない場合は、リモートにmain
ブランチがpushできていません。再度pushしてください。
古いブランチを削除する
git push origin :master
リモートのmaster
ブランチを削除します。:
は本来<ローカルのブランチ名>:<リモートのブランチ名>
という書式でブランチ名を指定するものです。今回は<空>:<リモートのmaster>
を指定し、リモートのブランチ削除コマンドとして利用しています。
リモートのHEADを再設定する
git remote set-head origin --auto
デフォルトブランチが削除されたため、origin/HEAD
が未指定になります。set-head
コマンドでHEADを再指定します。
コマンドのショートカット
複数回のリネーム作業用にコマンドを連結します。この処理はGitHub CLIがインストールされていることを前提にします。
git checkout master && git pull && git branch -m master main && git push -u origin main && gh browse --settings
ブラウザーでデフォルトブランチを変更してから、リモートのmasterブランチを削除します。
git push origin :master && git remote set-head origin --auto
以上、ありがとうございました。
参考記事