web-dev-qa-db-ja.com

分岐したGitHubプロジェクトを変更するにはどうすればよいですか?

プロジェクトを分岐し、いくつかの変更を行い、プルリクエストを受け入れました。しかし今、私がフォークしたプロジェクトは別のリポジトリに移動し、そのリポジトリのフォークになりました。

あれは:

Original -> MyFork

今:

NewOriginal -> Original -> MyFork

次のようにどのように取得しますか?

NewOriginal -> MyFork

ローカルでは、元のリポジトリのターゲットを変更できます。通常、そのリポジトリはupstreamと呼ばれるため、次のようにします。

git remote set-url upstream git://example.com/NewOriginal.git

使用しているホスト(つまり、フォークの場所)によっては、追加の内部リンクが存在する可能性があるため、簡単に変更することはできません。たとえば、Githubでは、フォークはフォーク元の元に直接リンクされます。その場合、新しいプロジェクトを再度フォークし、新しいフォークで作業する必要があります。

ただし、その場合は、Originリポジトリの [〜#〜] url [〜#〜] を簡単に変更できます。さて、古いフォークで以前に変更したすべてを新しいフォークにプッシュするだけです。

56
poke

[〜#〜] note [〜#〜]:次の解決策は、すべてのウィキコンテンツとフォーク固有の問題を失うため、不完全です。

これは、次の手順を使用して実現できます。

  1. 既存のフォークからすべてのブランチとタグをプルダウンします。
  2. GitHubでリポジトリを削除します。
  3. 新しいリポジトリからフォークします。
  4. リモートを更新します [〜#〜] url [〜#〜] 必要に応じて。
  5. すべてのローカルブランチとタグを新しいリポジトリにプッシュします。
62
Castrohenge

リポジトリのリモート [〜#〜] url [〜#〜] を更新します。

git remote set-url Origin <url to NewOriginal, e.g. git://…/bla.git>
9
knittl

適切なフォークとアップストリームの追加を実行したと仮定して githubHelpOnFork を参照してください。アップストリームURLを変更するには、次のようにします。

  1. 現在のアップストリームとOriginがどのように見えるかを確認します。

    git remote -v
    
  2. アップストリームがリストされていて、URLを変更したい場合は、@ pokeが提案したことを実行します(上記のhelpGithubリンクに従って新しいアップストリームを追加しない場合):

    git remote set-url upstream git://example.com/NewOriginal.git
    
  3. 次に、アップストリームが新しいURLを指していることを確認します

    git remote -v

2
user2651178