{"meta":{"title":"フォークを同期する","intro":"Web インターフェイス、GitHub CLI、またはコマンド ラインを使用して、フォークされたリポジトリをアップストリーム リポジトリと同期します。","product":"Pull Request","breadcrumbs":[{"href":"/ja/pull-requests","title":"Pull Request"},{"href":"/ja/pull-requests/how-tos","title":"使い方"},{"href":"/ja/pull-requests/how-tos/work-with-forks","title":"フォークを操作する"},{"href":"/ja/pull-requests/how-tos/work-with-forks/syncing-a-fork","title":"フォークを同期する"}],"documentType":"article"},"body":"# フォークを同期する\n\nWeb インターフェイス、GitHub CLI、またはコマンド ラインを使用して、フォークされたリポジトリをアップストリーム リポジトリと同期します。\n\n## Web UI からフォークのブランチを同期する\n\n1. GitHubで、アップストリーム リポジトリと同期するフォークされたリポジトリのメイン ページに移動します。\n2. ファイルのリストの上で、 **\\[フォークの同期]** ドロップダウン メニューを選んでください。\n\n   ![フォークのメイン ページのスクリーンショット。 同期アイコンと \\[フォークの同期\\] のラベルが付いたドロップダウン メニューが、濃いオレンジ色の枠線で囲まれています。](/assets/images/help/repository/sync-fork-dropdown.png)\n3. アップストリーム リポジトリからのコミットの詳細を確認し、 **\\[ブランチを更新]** をクリックします。\n\nアップストリーム リポジトリからの変更によって競合が発生した場合、 GitHub は競合を解決するためのプル要求を作成するように求められます。\n\n## フォーク ブランチと 〗〘の同期 GitHub CLI\n\nGitHub CLI は、コンピューターのコマンド ラインから GitHub を使用するためのオープン ソース ツールです。 コマンドラインから作業しているときは、GitHub CLI を使用して時間を節約し、コンテキストの切り替えを回避できます。\nGitHub CLIの詳細については、「[GitHub CLI について](/ja/github-cli/github-cli/about-github-cli)」を参照してください。\n\n親からリモート フォークを更新するには、`gh repo sync -b BRANCH-NAME` サブコマンドを使って、フォークとブランチの名前を引数として指定します。\n\n```shell\ngh repo sync owner/cli-fork -b BRANCH-NAME\n```\n\nアップストリーム リポジトリからの変更によって競合が発生した場合、 GitHub CLI は同期できません。宛先ブランチを上書きするには、 `--force` フラグを使用します。\n\n## コマンド ラインからフォークのブランチを同期する\n\nフォークをアップストリーム リポジトリと同期する前に、Git でアップストリーム リポジトリを指すリモートを構成する必要があります。 「[フォーク用のリモート リポジトリの構成](/ja/pull-requests/how-tos/work-with-forks/configuring-a-remote-repository-for-a-fork)」を参照してください。\n\n1. ターミナルまたは Git Bash を開きます。\n\n2. ワーキングディレクトリをローカルプロジェクトに変更します。\n\n3. 上流リポジトリから、ブランチと各ブランチのコミットをフェッチします。\n   `BRANCH-NAME` へのコミットは、ローカル ブランチ `upstream/BRANCH-NAME` に格納されます。\n\n   ```shell\n   $ git fetch upstream\n   > remote: Counting objects: 75, done.\n   > remote: Compressing objects: 100% (53/53), done.\n   > remote: Total 62 (delta 27), reused 44 (delta 9)\n   > Unpacking objects: 100% (62/62), done.\n   > From https://github.com/ORIGINAL-OWNER/ORIGINAL-REPOSITORY\n   >  * [new branch]      main     -> upstream/main\n   ```\n\n4. フォークのローカルの既定のブランチを確認します。 この例では、`main` を使用します。\n\n   ```shell\n   $ git checkout main\n   > Switched to branch 'main'\n   ```\n\n5. アップストリームの既定のブランチからの変更をローカルの既定のブランチにマージします。 この例では、アップストリームの既定のブランチは `upstream/main`。 これにより、ローカルの変更を失うことなく、フォークの既定のブランチがアップストリーム リポジトリと同期されます。\n\n   ```shell\n   $ git merge upstream/main\n   > Updating a422352..5fdff0f\n   > Fast-forward\n   >  README                    |    9 -------\n   >  README.md                 |    7 ++++++\n   >  2 files changed, 7 insertions(+), 9 deletions(-)\n   >  delete mode 100644 README\n   >  create mode 100644 README.md\n   ```\n\n   ローカル ブランチに一意のコミットがなかった場合、Git は早送りを実行します。 Git ドキュメントの [「基本的な分岐とマージ](https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging) 」を参照してください。\n\n   ```shell\n   $ git merge upstream/main\n   > Updating 34e91da..16c56ad\n   > Fast-forward\n   >  README.md                 |    5 +++--\n   >  1 file changed, 3 insertions(+), 2 deletions(-)\n   ```\n\n   ローカル ブランチに一意のコミットがある場合は、競合の解決が必要になる場合があります。 「[プル リクエストをマージして閉じる](/ja/pull-requests/how-tos/merge-and-close-pull-requests)」を参照してください。\n\n> \\[!TIP]\n> フォークの同期では、リポジトリのローカル コピーだけが更新されます。\n> GitHub.comでフォークを更新するには、[変更をプッシュ](/ja/get-started/using-git/pushing-commits-to-a-remote-repository)する必要があります。"}