【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
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。