オープンソースやチーム開発でよく使われる「fork」。
でも「fork した後にどうやってローカルで開発環境を整えればいいの?」と迷う方も多いと思います。
この記事では、fork → clone → 開発 → プルリクエストまでの基本的な流れをまとめます。
1. リポジトリを fork する
- 対象のリポジトリ(例:
https://github.com/example/project
)にアクセス - 右上の Fork ボタンをクリック
- 自分の GitHub アカウント配下にコピーが作成されます
これで、自分専用のリポジトリができました。
2. ローカルに clone する
ターミナルを開き、fork したリポジトリを clone します。
# 自分のアカウントに作られたリポジトリを clone git clone https://github.com/<your-username>/<repository-name>.git # ディレクトリに移動 cd <repository-name>
これでローカル環境にソースコードが準備できました。
3. upstream(元リポジトリ)を登録する
fork したリポジトリは、自分の GitHub アカウント配下にあるコピーです。
元のリポジトリ(本家リポジトリ)と同期できるように「upstream」として登録します。
# 本家リポジトリを追加 git remote add upstream https://github.com/<original-owner>/<repository-name>.git # 登録確認 git remote -v
表示例:
origin https://github.com/<your-username>/<repository-name>.git (fetch) origin https://github.com/<your-username>/<repository-name>.git (push) upstream https://github.com/<original-owner>/<repository-name>.git (fetch) upstream https://github.com/<original-owner>/<repository-name>.git (push)
4. 最新の変更を取り込む(同期)
開発を始める前や、定期的に元リポジトリの更新を取り込みます。
# upstream の変更を取得 git fetch upstream # 自分の main ブランチにマージ git checkout main git merge upstream/main
これで最新状態に追従できます。
5. 開発用ブランチを作成する
直接 main
ブランチで作業するのは避け、作業用ブランチを切りましょう。
# 新しいブランチを作成して移動 git checkout -b feature/add-new-function
6. コードを修正 & コミットする
好きなエディタでコードを修正し、コミットします。
# 変更確認 git status # ファイルをステージング git add <変更したファイル> # コミット git commit -m "新機能を追加しました"
7. 自分のリポジトリに push する
git push origin feature/add-new-function
GitHub 上の自分の fork に新しいブランチが反映されます。
8. Pull Request を作成する
- GitHub の自分のリポジトリにアクセス
- 「Compare & pull request」ボタンをクリック
- タイトル・説明を書いて本家リポジトリに送ります
これで、開発者にレビューしてもらう準備が整いました 🎉
まとめ
fork したリポジトリで開発する流れは次の通りです:
- リポジトリを fork
- ローカルに clone
- upstream を登録
- 最新の変更を同期
- 開発ブランチを作成
- 修正・コミット
- 自分の fork に push
- Pull Request
この流れをマスターすれば、オープンソース開発やチーム開発にスムーズに参加できると思います。
【別記事案】よくあるエラーと対処法まとめ
fork したリポジトリで開発するときに遭遇しやすいエラーと、その解決方法をまとめました。
- push できない(
error: failed to push some refs
) - upstream の変更を取り込むとコンフリクトする
- remote が正しく設定されていない
- main に直接コミットしてしまった
- pull request が作成できない
👉 詳細はこちらの記事へ
➡️ 「fork開発でよくあるエラーと対処法」