0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MacでローカルフォルダとGitHub初回連携のエラー

0
Posted at

はじめに

新しいMacを購入し、すでにGitHub上で作成済みのリポジトリと、ローカル(Mac内)にある既存のディレクトリを連携させようとしました。
しかし、git remote コマンドを打った瞬間からエラーの連鎖に遭遇。
最終的に無事解決できたので、同じ罠にハマった方のために原因と解決策のロードマップをまとめます。

開発環境

  • 端末: MacBook Air
  • OS: macOS
  • やりたかったこと: ローカルにあるLaravelプロジェクトのフォルダを、GitHubの空リポジトリ(README.md付き)と連携して初プッシュする

遭遇したエラーと解決の全記録

エラー1: Gitリポジトリになっていない

fatal: not a git repository (or any of the parent directories): .git

【原因】
ローカルのディレクトリが、まだGitの管理下(.git フォルダが存在しない状態)になっていないのにGitコマンドを打ったため。

【解決策】
ディレクトリを初期化し、最初のコミットをしてからリモートと紐付けました。

git init
git add .
git commit -m "first commit"
git remote add origin <GitHubのURL>

エラー2: 「Add a README file」にチェックしてしまった

 ! [rejected]        main -> main (fetch first)
error: failed to push some refs to '...'
hint: Updates were rejected because the remote contains work that you do not have locally.

【原因】
GitHub側でリポジトリを作る際、「Add a README file」にチェックを入れていたため、GitHub側にだけREADME.mdというファイルが存在していた。

【解決策】
「一度リモートのデータをローカルにダウンロードして合体(pull)させよう」と試みました。

エラー3: pullの合体ルールが決まっていない

歴史を合体させるために git pull origin main --allow-unrelated-historiesを打ったところ、さらにエラー。

fatal: Need to specify how to reconcile divergent branches.

【原因】
Gitに対し、「分岐したブランチをどうやって合体させるか」のルール(マージするのか、リベースするのか)を設定していなかったため。

【解決策】

git config pull.rebase false
git pull origin main --allow-unrelated-histories

エラー4: README.mdのコンフリクト

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

【原因】
Mac側で作った(空の)README.md と、GitHub側で自動生成された README.md がぶつかり、Gitが一時停止した状態。

【解決策】
ローカルのREADMEは空っぽだったので、GitHub側のREADMEを強制採用して上書きし、合体作業を終わらせました。

git checkout --theirs README.md  # GitHub側(リモート)のファイルを強制採用
git add README.md
git commit -m "コンフリクトを解消"

最終的な結末
コンフリクト解消が無事に完了したため、プッシュ。

git push -u origin main

まとめ

もし「GitHubにある既存リポジトリ」と「Macのローカルフォルダ」を連携させたい場合、ローカル側にまだ大事なコードがないのであれば、一番最初の段階でgit cloneしてくるのが最も安全でエラーが起きない最短ルートです。

すでにローカルにコードがある場合は、上記のように「統合」と「READMEの衝突回避」が必要になることを覚えておくと冷静に対処できます!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?