GihHub のデフォルトでない master ブランチを checkout する

2021/05/28

GitHub の「master」と「main」

2020年末頃から GitHub のデフォルトブランチが「master」から「main」に変更になりました。GitHub をはじめた人がこの変更を知らない人が手順を間違えて「master」に push して放置していることがあります。

手動で master に push してしまうのが原因?

これは GitHub でリポジトリ作成すると「main」ブランチがデフォルトになったにもかからわず、手動コマンドで「master」に push してしまうことが多いようです。


% git push origin master

「main」と「master」の食い違いは最終的に、ブランチを移動する作業が必要ですが、ここでは割愛します。

master を checkout する

今回はデフォルトが「main」ブランチで、「master」ブランチで管理されたソースを pull/checkout してみます。

Git clone する

まずリポジトリをクローンして、プロジェクトフォルダに移動します。


% git clone https://github.com/アカウント名/リポジトリ名.git
% cd プロジェクト名

リモートブランチ(master)をローカルブランチ(master)に checkout

リモートブランチは「master」になっているので、ローカルブランチも「master」にあわせて checkout します。 -b は新しくブランチを作成してくれるオプションです。


% git checkout -b master origin/master
Branch 'master' set up to track remote branch 'master' from 'origin'.
Switched to a new branch 'master'

これでリモートブランチ「master」からソースもダウンロードされます。

ローカルブランチや origin の確認

ローカルブランチが「master」ブランチに変わったことを確認します。


% git branch
  main
* master

また origin を確認するとメインが main でその他 master ブランチも追跡していることがわかります。


% git remote show origin
* remote origin
  Fetch URL: https://github.com/アカウント名/リポジトリ名.git
  Push  URL: https://github.com/アカウント名/リポジトリ名.git
  HEAD branch: main
  Remote branches:
    main   tracked
    master tracked
  Local branches configured for 'git pull':
    main   merges with remote main
    master merges with remote master
  Local refs configured for 'git push':
    main   pushes to main   (up to date)
    master pushes to master (up to date)