fork したリポジトリで開発していると、初学者がつまずきやすいエラーがあります。代表的なものとその解決方法をまとめました。
① push できない(error: failed to push some refs)
原因: リモート(GitHub 上)のブランチがローカルと食い違っている。
対処法:
# リモートの変更を取り込む git pull origin <ブランチ名> # もう一度 push git push origin <ブランチ名>
⚠️ それでも競合がある場合は、git merge
で解決してから push してください。
② upstream の変更を取り込むとコンフリクトする
原因: 元リポジトリの変更と自分の修正が同じ部分にかぶっている。
対処法:
# upstream の変更を取り込む git fetch upstream git merge upstream/main
エディタで <<<<<<<
=======
>>>>>>>
と表示された箇所を手動で修正し、
修正後に以下を実行します。
git add <修正したファイル> git commit
③ remote が正しく設定されていない
git remote -v
で確認したときに、upstream
が存在しない or 間違っているケース。
対処法:
# upstream を再登録する git remote remove upstream git remote add upstream https://github.com/<original-owner>/<repository>.git
④ 別のブランチで作業していたのに main にコミットしてしまった
原因: ブランチを切り忘れて main
に直接コミットしてしまった。
対処法: コミットを新しいブランチに移動させる。
# 新しいブランチを作成(コミットを引き継ぐ) git checkout -b feature/fix-bug
その後、main
を元の状態に戻したい場合は:
git checkout main git reset --hard upstream/main
⑤ pull request ができない(ボタンが出ない)
原因: push 先を間違えて、本家リポジトリに直接 push しようとしているケース。
対処法:origin
が自分のリポジトリを指しているか確認しましょう。
git remote -v
もし間違っていたら再設定します:
git remote set-url origin https://github.com/<your-username>/<repository>.git
まとめ
fork してローカルで開発する流れに加えて、よくあるエラーの対処法も知っておくと安心です。
- push エラーは pull → merge → push
- コンフリクトはエディタで手動解決
- remote 設定ミスは
git remote -v
で確認 - ブランチを使い分けて安全に作業
これらを押さえておけば、オープンソース貢献やチーム開発でスムーズに進められるはずです。