はじめに
c++で作品を作っていてGitHubにコミットしてプッシュしようとしたときのことでした
今までは、デフォルトブランチ名がmasterだったときはらくらくできていたが、デフォルトブランチ名がmainブランチに変更されてから
この謎は始まったのであった。
自分が忘れないようにメモとして書いているものだが、もし同じように困っている人の役に立てたら幸いです。
どういう謎だよ
まずいつも通りにGitHubで新しいリポジトリを作成して
ターミナル下記を入力
git init
git remote add origin [新しいリポジトリを作成したURL]
git add .
git commit -m "first commit"
//ここで、pushなりgit pullなりで問題が起こる
git push origin main
git
- branch main -> FETCH_HEAD
fatal: refusing to merge unrelated histories
とか
error: src refspec main does not match any.
error: failed to push some refs to 'origin'
とか
git pullで
fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists
他にも、masterでプッシュしてしまうと、mainブランチとmasterができてしまったりして
2つブランチができてしまうことがありました
もしmainブランチとmasterブランチを作りたいのであればいいのですがそうでない場合...
うわぁぁぁぁ!!!初見殺しだァァァ!
何が起きているのか、解決方法を探す
git clone でできているリポジトリから解決した方法
git branchで現在いるブランチを確認
git branch
- master
ん?masterになっている。
そういえば、git cloneで取ってきていないからか。これじゃあできないわけだ。
GitHubで作ったリポジトリをクローンする
git clone [リモート リポジトリのurl]
それで
git branch
- main
これでgit pushできるはず!
git cloneを使わないやつで解決した方法
git init
git remote add origin [リモートリポジトリのURL]
git add [ファイル]
git commit -m "ここにコメントを入れる"
git branch
もし* masterと表示になっていたら
git fetch
git checkout main
git push
解決方法のまとめ
GitHubのデフォルトブランチ名がmainブランチに変わってから、
新しくリポジトリを作成したときにpushできない問題が起きたら、
先にリポジトリを作成してgit clone で取ってくるか、
上記で書いたgit cloneを使わない方法で解決できた。
謝辞 + IT勉強会にどんどん参加しようぜ!!
今回のGitHubに関して行き詰まっていたのを解決できたのは IT勉強会CoKonPileの参加者様と関係者の協力で解決できました!
CoKonPileの皆様、ヒントや解決方法を一緒に考えていただき、ありがとうございました!
IT勉強会、どんどん参加しよう!!!!!!!!