Chiroru's Diary

日々の学びをちょこちょこメモしていきます

Githubのデフォルトブランチがmainになった

【目次】

mainになっていた

Githubのデフォルトのブランチが「master」から「main」になったようです。

GitHub、これから作成するリポジトリのデフォルトブランチ名が「main」に。「master」から「main」へ変更

これを知らずにリポジトリを作成後、masterにプッシュしてしまいInitial commitがうまくいきませんでした。

f:id:chiroru_memo:20201012220834p:plain
github上で別物として扱われてしまっております

まずこの解決方法として、以下のようにmasterブランチのコミットをmainブランチへ移しました。

$ git fetch origin
* [new branch]      main       -> origin/main

$ git checkout main
Switched to a new branch 'main'

$ git cherry-pick コミットID

$ git push origin main

※コミットIDは、Github上でbranchのcommitsから確認できます

f:id:chiroru_memo:20201012225119p:plain
コミットIDをコピー

本来Github上でプルリクを出すことができるはずなのですが、masterブランチからmainブランチへはなぜかプルリクが出せない状態になっていた(何も表示がなかった)ので、今回はターミナル上で対応しました。

そもそもgit init時にmasterブランチが作成されている

git initで初期化する際に、masterブランチが生成されてしまっています。
デフォルトのブランチ名がmasterからmainに変わったのはGithubのみであるので、これらを一致させると良いでしょう。

このgit initで生成されるブランチ名をmainにするには、init.defaultBranchで設定できるようです。

※これはgit 2.28以上のバージョンでのみになります。

Git でデフォルトのブランチ名を master 以外に変更する方法

$ git config --global init.defaultBranch main

リポジトリをcloneしてきてから作業するのも良いかも

最初にGithubリポジトリを作成してきて、$ git clone リポジトリのURLでクローンしてこれば、すでにあるmainブランチ上で作業を開始することもできます。

リポジトリをクローンする

$ git clone URL

$ cd リポジトリ

$ git branch
* main

$ git add
・
・
$ git push origin main

zshならgitの補完機能も使えるかも

(私はbashなのでこちらは試せていないのですが)補完機能を利用して、持っているブランチを確認しつつ作業することもできるようです。

zsh で git コマンドの補完を有効にする

[追記] ブランチ名をあとで変更すれば良いだけかも

こちらを書いた時頭になかったのですが、普通にブランチ名をpush前にmainに変更するのでも良いですね。

$ git branch -m <変更するブランチ名> <変更後のブランチ名>

// 現在使用しているブランチを変更する
$ git branch -m <変更後のブランチ名>