【GitHub】ブランチ名をmasterからmainに変更で起きたエラーの解決法

この記事からわかること

  • BLM運動とは?
  • Gitブランチ変更する方法
  • masterが良くない理由
  • mainにした際に起きたエラー解決法

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

BLM運動によるmasterの配慮

GitHubにデフォルトで設定されているブランチ名は「master」。この英単語の意味が「主人、使いこなす」と言った意味になります。

アメリカで始まった人種差別抗議運動、「Black Lives Matter」(BLM)運動への配慮により、主人と奴隷と意味につながる「master/slave」という言葉を極力使わないようにGitHubも2020年にブランチ名を「main」に変更するように動き出していたようです。

GitHubのブランチ名を変更する

Gitで操作する中でデフォルトのブランチ名を変更する場合以下のコード実現できます。

$ git config --global init.defaultBranch main

このコードはGitの設定部分から変更するので都度変更する手間が省けて便利です。

リポジトリごとに変更するにはブランチの名前を書き換えてあげればOKです。

現在アクティブにしているブランチ名を変更する

$ git branch -m main

ブランチ名を指定して変更

$ git branch -m hoge hogege

ブランチ名変更でpush時に起きたエラー

ブランチ名を「main」に変更したせいでpushした際にエラーが発生しました。

! [rejected] main -> main (fetch first)
error: failed to push some refs to 'URL'

翻訳
! [拒否]メイン->メイン(最初にフェッチ)
エラー:一部の参照を「URL」にプッシュできませんでした

このエラーはブランチ名を変えたことでローカルリポジトリのリモート追跡ブランチ(origin/main)と下流ブランチの(main)紐付けが解かれたことによるエラーかなと思います。(違ってたらごめんなさい)

このエラーが出たらつのブランチをマージすることで解決できました。そのままマージしようとするとエラーが起きてしまうのでオプション--allow-unrelated-historiesを指定すると根幹(mainとorigin/main)が異なるブランチでもマージすることができます。

$ git merge --allow-unrelated-histories origin/main

私の場合、「README.md」がコンフリクト(衝突)してしまい自動マージに失敗しました。コンフリクトは2つのブランチをマージした際に同ファイルが別の更新をされていた時にどちらの更新を優先するのか分からず起きてしまいます

CONFLICT (add/add): Merge conflict in README.md
Auto-merging README.md
Automatic merge failed; fix conflicts and then commit the result.

なので生かしたい方の「README.md」をステージング(add)してからコミット→pushしてみると成功しました。

// ステージング
$ git add README.md
// 再度コミット
$ git commit -m'second commit'
// push
$ git push origin main

Enumerating objects: 1971, done.
Counting objects: 100% (1971/1971), done.
Delta compression using up to 8 threads
Compressing objects: 100% (1952/1952), done.
Writing objects: 100% (1969/1969), 5.05 MiB | 5.21 MiB/s, done.
Total 1969 (delta 254), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (254/254), done.
To URL
main -> main 
// 成功!!

ちなみにオプションなしでマージしようとした場合以下のようなエラーが出ました。

$ git merge origin/main
fatal: refusing to merge unrelated histories

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index