他人のPull Requestのマージ方法

投稿者: Anonymous

ある他人のGitリポジトリrepoAに、同リポジトリからフォークされたrepoBのmasterからPull Requestが届いていました。
そのPull Requestは長い間マージされず放置されています。

自分はその機能が欲しいので、自分でrepoAをフォークしたrepoCに、repoBのmasterをマージして個人的に使いたいと思いました。

しかしrepoBがフォークされてからrepoAは何度か修正されているので、repoBのmasterをrepoAのmasterにrebaseしたものを、repoCにマージしたいです。
図に表すと下記のような感じです。

repoA: A → B → C → D
repoB:     `-→ E
repoC: EをDでrebaseしたE'をマージしたD'が欲しい

どのようにすればよいでしょうか?

解決

以下の手順で実現できるかと思います。

git clone <repoCのURL>
cd <cloneしたディレクトリー>
git remote add repoB <repoBのURL>
git fetch repoB
git fetch origin
git checkout master
git pull origin master # 念のため / この時点でローカルのリポジトリーのmasterはコミットDの状態
git merge repoB/master # コミットDに対してコミットEをマージ

EをDでrebaseしたE’をマージしたD’が欲しい

というのと少し違うかもしれませんが、結果的にrepoBのmaster(コミットE)を取り込んだコミットができるはずです。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *