もくじ
GitHubでフォークしたリポジトリを使って開発していると、「本家リポジトリ(元のリポジトリ)の最新の変更を取り込みたい!」と思うことがあります。
この記事では、本家リポジトリが更新されたとき、フォークしたリポジトリを最新の状態にする方法を解説します。
フォーク元の変更をfetch
→merge
→push
の流れを初心者向けにわかりやすく説明します。
フォークしたリポジトリを最新にする流れ
本家リポジトリの更新をフォークしたリポジトリに反映する手順は以下の通りです。
- フォークしたリポジトリのディレクトリに移動
- 本家リポジトリを「アップストリーム」として登録
- 本家の最新変更を取得
- フォークしたリポジトリのブランチを最新化
- 変更をGitHubにプッシュ
①フォークしたリポジトリのディレクトリに移動
cd /forkerepository
②フォーク元を「アップストリーム」として登録
以下のコマンドを実行し、フォークしたリポジトリに本家のリポジトリを「upstream」として登録します。
※以下のコマンドは1度実行すれば、2回目以降は不要です。
git remote add upstream 本家のリポジトリのURL
アップストリームの登録確認
以下のコマンドを実行し、upstreamが追加されていれば問題ありません。
git remote -v

アップストリームのURLを間違えた場合の修正方法は、以下の記事にまとめています。
-
【Git】リモートリポジトリのURLを変更・修正する方法
もくじ間違ったリモートURLを修正する方法1. 現在のリモートURLを確認する2. git remote set-url コマンドでURLを修正する3. 修正後のリモートURLを確認するよくあるエラー ...
③本家の最新変更を取得
本家リポジトリの最新の変更を取得します。
以下のコマンドを実行するとupstream(本家)の変更をローカル環境に取り込むことができます。
git fetch upstream
④フォークしたリポジトリを最新化
ローカルのmain
ブランチを最新状態に更新します。
mainブランチに移動
git checkout main
本家の変更をマージ
git merge upstream/main
コンフリクトが発生した場合、手動で修正しgit commit
する必要があります。
⑤最新の状態をGitHubにプッシュ
ローカルで本家の変更を反映できたら、GitHubのフォークしたリポジトリに反映します。
git push origin main
開発ブランチを最新の状態にする
開発ブランチ(例: feature-branch)を最新にする場合も同じ流れです。
開発ブランチへ移動
git checkout feature-branch
最新のmainを取り込む
git merge main
GitHubにプッシュ
git push origin feature-branch
まとめ
フォークしたリポジトリを最新にする手順
git remote add upstream 本家のリポジトリのURL
(最初だけ)git fetch upstream
(本家の変更を取得)git checkout main
git merge upstream/main
git push origin main
開発ブランチを最新にする場合
git checkout feature-branch
git merge main
git push origin feature-branch