正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

フォークを更新する

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

フォークとは、リポジトリとそのすべてのブランチの個人用コピーであり、任意のネームスペースに作成します。フォークを使用すると、アクセスできない別のプロジェクトに変更を提案できます。詳細については、フォーク型ワークフローを参照してください。

GitLab UIでフォークを更新することもできます。

前提要件:

コマンドラインからフォークを更新するには、次の手順に従います:

  1. upstreamリモートリポジトリがフォークに設定されているかどうかを確認します:

    1. まだローカルコピーしていない場合は、フォークをクローンします。詳細については、リポジトリのクローンを参照してください。

    2. フォークに設定されているリモートを表示します:

      git remote -v
    3. フォークに元のリポジトリを指すリモートがない場合は、次のいずれかの例を使用して、アップストリームというリモートを設定します:

      # 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
  2. フォークを更新する:

    1. ローカルコピーで、デフォルトブランチをチェックアウトします。mainをデフォルトブランチの名前に置き換えます:

      git checkout main

      Gitがアンステージの変更を識別した場合は、続行する前にコミットまたはスタッシュしてください。

    2. アップストリームリポジトリから変更をフェッチします:

      git fetch upstream
    3. 変更をフォークにプルします。mainを、更新するブランチの名前に置き換えます:

      git pull upstream main
    4. サーバー上のフォークリポジトリに変更をプッシュします:

      git push origin main

フォークをまたいだコラボレーション

GitLabでは、アップストリームプロジェクトのメンテナーとフォークのオーナー間のコラボレーションが可能です。詳細については、以下を参照してください:

アップストリームメンバーとしてフォークにプッシュします

次の場合、フォークしたリポジトリのブランチに直接プッシュできます:

  • マージリクエストの作成者が、アップストリームメンバーからのコントリビュートを有効にしている。
  • アップストリームプロジェクトのデベロッパーロール以上を持っている。

次の例では、以下が実行されます:

  • フォークリポジトリのURLはgit@gitlab.com:contributor/forked-project.gitです。
  • マージリクエストのブランチはfork-branchです。

コントリビューターのマージリクエストにコミットを変更または追加するには、次の手順に従います:

  1. 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。新しいナビゲーションをオンにしている場合、このフィールドは上部のバーにあります。

  2. コード > マージリクエストを選択し、マージリクエストを見つけます。

  3. 右上隅で、コードを選択し、ブランチをチェックアウトを選択します。

  4. ダイアログで、コピー copy-to-clipboard )を選択します。

  5. ターミナルで、クローンされたリポジトリのバージョンに移動し、コマンドをペーストします。例:

    git fetch "git@gitlab.com:contributor/forked-project.git" 'fork-branch'
    git checkout -b 'contributor/fork-branch' FETCH_HEAD

    これらのコマンドは、フォークプロジェクトからブランチをフェッチし、作業するためのローカルコピーのブランチを作成します。

  6. ブランチのローカルコピーに変更を加え、コミットします。

  7. プッシュローカルコピーの変更をフォークプロジェクトにプッシュします。次のコマンドは、ローカルブランチ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>