GitHub でフォークしたリポジトリを更新または同期するにはどうすればよいですか? 質問する

GitHub でフォークしたリポジトリを更新または同期するにはどうすればよいですか? 質問する

プロジェクトをフォークし、変更を加えてプル リクエストを作成し、それが承認されました。その後、新しいコミットがリポジトリに追加されました。これらのコミットをフォークに取り込むにはどうすればよいですか?

ベストアンサー1

フォークしたリポジトリのローカル クローンでは、元の GitHub リポジトリを「リモート」として追加できます。(「リモート」はリポジトリの URL のニックネームのようなものです。originたとえば、 などです。) 次に、そのアップストリーム リポジトリからすべてのブランチを取得し、作業をリベースしてアップストリーム バージョンで作業を続行できます。コマンドとしては、次のようになります。

# Add the remote, call it "upstream":

git remote add upstream https://github.com/whoever/whatever.git

# Fetch all the branches of that remote into remote-tracking branches

git fetch upstream

# Make sure that you're on your main branch:

git checkout main

# Rewrite your main branch so that any commits of yours that
# aren't already in upstream/main are replayed on top of that
# other branch:

git rebase upstream/main

メイン ブランチの履歴を書き換えたくない場合 (たとえば、他の人がクローンしている可能性があるため) は、最後のコマンドを に置き換える必要がありますgit merge upstream/main。ただし、可能な限りクリーンなプル リクエストをさらに作成するには、リベースする方がよいでしょう。


ブランチを にリベースした場合、upstream/mainそれを GitHub 上の独自のフォークされたリポジトリにプッシュするために、プッシュを強制する必要があるかもしれません。これを行うには、次のようにします。

git push -f origin main

-fリベースした後の最初の 1 回のみ使用する必要があります。

おすすめ記事