フォークを更新する
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
フォークとは、リポジトリとそのすべてのブランチの個人用コピーであり、任意のネームスペースに作成します。フォークを使用すると、アクセスできない別のプロジェクトに変更を提案できます。詳細については、フォーク型ワークフローを参照してください。
GitLab UIでフォークを更新することもできます。
前提要件:
- ローカルマシンにGitクライアントをダウンロードしてインストールする必要があります。
- 更新するリポジトリのフォークを作成する必要があります。
コマンドラインからフォークを更新するには、次の手順に従います:
upstreamリモートリポジトリがフォークに設定されているかどうかを確認します:まだローカルコピーしていない場合は、フォークをクローンします。詳細については、リポジトリのクローンを参照してください。
フォークに設定されているリモートを表示します:
git remote -vフォークに元のリポジトリを指すリモートがない場合は、次のいずれかの例を使用して、アップストリームというリモートを設定します:
# Set any repository as your upstream after editing <upstream_url> git remote add upstream <upstream_url> # Set the main GitLab repository as your upstream git remote add upstream https://gitlab.com/gitlab-org/gitlab.git
フォークを更新する:
ローカルコピーで、デフォルトブランチをチェックアウトします。
mainをデフォルトブランチの名前に置き換えます:git checkout mainGitがアンステージの変更を識別した場合は、続行する前にコミットまたはスタッシュしてください。
アップストリームリポジトリから変更をフェッチします:
git fetch upstream変更をフォークにプルします。
mainを、更新するブランチの名前に置き換えます:git pull upstream mainサーバー上のフォークリポジトリに変更をプッシュします:
git push origin main
フォークをまたいだコラボレーション
GitLabでは、アップストリームプロジェクトのメンテナーとフォークのオーナー間のコラボレーションが可能です。詳細については、以下を参照してください:
アップストリームメンバーとしてフォークにプッシュします
次の場合、フォークしたリポジトリのブランチに直接プッシュできます:
- マージリクエストの作成者が、アップストリームメンバーからのコントリビュートを有効にしている。
- アップストリームプロジェクトのデベロッパーロール以上を持っている。
次の例では、以下が実行されます:
- フォークリポジトリのURLは
git@gitlab.com:contributor/forked-project.gitです。 - マージリクエストのブランチは
fork-branchです。
コントリビューターのマージリクエストにコミットを変更または追加するには、次の手順に従います:
左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。新しいナビゲーションをオンにしている場合、このフィールドは上部のバーにあります。
コード > マージリクエストを選択し、マージリクエストを見つけます。
右上隅で、コードを選択し、ブランチをチェックアウトを選択します。
ダイアログで、コピー( )を選択します。
ターミナルで、クローンされたリポジトリのバージョンに移動し、コマンドをペーストします。例:
git fetch "git@gitlab.com:contributor/forked-project.git" 'fork-branch' git checkout -b 'contributor/fork-branch' FETCH_HEADこれらのコマンドは、フォークプロジェクトからブランチをフェッチし、作業するためのローカルコピーのブランチを作成します。
ブランチのローカルコピーに変更を加え、コミットします。
プッシュローカルコピーの変更をフォークプロジェクトにプッシュします。次のコマンドは、ローカルブランチ
contributor/fork-branchを、fork-branchブランチのgit@gitlab.com:contributor/forked-project.gitリポジトリにプッシュします:git push git@gitlab.com:contributor/forked-project.git contributor/fork-branch:fork-branchいずれかのコミットを修正またはスカッシュした場合は、
git push --forceを使用する必要があります。このコマンドはコミットの履歴を書き換えるため、注意して進めてください。git push --force git@gitlab.com:contributor/forked-project.git contributor/fork-branch:fork-branchコロン(
:)は、ソースブランチと宛先ブランチを指定します。スキームは次のとおりです:git push <forked_repository_git_url> <local_branch>:<fork_branch>