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