2016-03-31 8 views
0

私はgithubリポジトリをフォークし、マスターブランチに多くの変更を加えました。私の要件に固有の多くの変更があります。すべての変更についてプルリクエストを送信すると、要件に固有の変更が多数あるため、リポジトリの元の所有者は受け入れません。既存のフォークに影響を与えずに新しいフォークを作成する

しかし、私は受け入れられる可能性のある機能のいくつかを提出する必要があり、他のユーザーにとっても便利です。だから私はすでに新しいフォークを作成したいのですが、私はすでにアカウントにフォークされたリポジトリを持っています。そして、私は既存のフォークに影響を与えたくありません。

新しいフォークでは、特定の変更を追加して、それを使ってプルリクエストを作成することができます。

どうすればできますか?

答えて

3

新しいフォークは不要です!

フォークFから元のOにプルリクエストするのではなく、FのブランチaからOのブランチbにプルリクエストします。

元のリポジトリと同じレベルにある新しいブランチ(たとえば、 "PRQ_feature-you-added")を作成し、このブランチに加えたい変更を再適用します。
次に、このブランチから元のリポジトリのプルリクエストにプルリクエストを行います。

これは実際には一般的な方法です。プル要求のために常に新しいブランチを作成してください。

コード:
others_usernameは、寄稿したい元のリポジトリを保持しているユーザー名です。
their_branchは、プルリクエストしたいレポのブランチです。通常はデフォルトのmasterです。
$COMMIT_IDは、共有したいコミットのIDです。しかし、おそらくあなたが解決する必要のあるマージ競合があります。
また、チェッカー・ピックの代わりに、どのようにコミットしたかによって、リベースを使用することもできます。
originは、内部リモート名です。あなたのリポジトリの参照、それは異なる可能性がありますが、それを直接クローンした場合、それがデフォルトです。

git remote add other_repo github.com/others_username/project_name 
git fetch other_repo 
git checkout -b PRQ_new-feature other_repo/their_branch 
git cherry-pick $COMMIT_ID 
git push --set-upstream origin PRQ_new-feature 

Webインターフェイスでは、支店からプルリクエストを作成します。

しかし、git(ではなくGitHub)のブランチとフォークの仕組みについては間違いなく読んでください。
私は "thinklikeagit"(ちょうどGoogle)が好きです。

関連する問題