はじめに
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勉強会、どんどん参加しよう!!!!!!!!