LoginSignup
35
31

More than 5 years have passed since last update.

他人の出しているPull Requestを自分のブランチとして取り込む

Last updated at Posted at 2015-11-13

動機

他人の出しているPull Requestについて、自分のブランチとして実験・修正したい、ということがありました。具体的には下記のような状況です。

  • 本体GitHubリポジトリ
    • Aさんがforkしたリポジトリ
      • Pull Requestが出ているブランチ(←これを自分のリポジトリに取り込みたい!)
    • 自分がforkしたリポジトリ

自分が本体からforkしていない状態であれば、単にAさんのリポジトリをforkするだけで問題のブランチも手に入りますが、残念ながら自分は既にfork済みで、かつ何度かPull Requestを送っているので自分のリポジトリを消すわけにもいきません。

また、問題のブランチがTravis CIでのテストに通るかどうかに興味があったので、手元にPull Requestのコピーを作るだけでなく、自分のブランチとしてGitHubにpushして、自分のTravis CIアカウントで動作確認したい、という状況でした。

手順

以下、下記のような状況だとします。

  • Aさんリポジトリ:ssh://git@github.com:A-san/Spoon-Knife.git
    • Pull Requestが出ているブランチ名:new-feature
  • 私のリポジトリ:ssh://git@github.com:hnw/Spoon-Knife.git

私は次のようにしてnew-featureブランチを自分のリポジトリに持ってきました。

$ git checkout master
$ git checkout -b new-feature
$ git remote add A-san ssh://git@github.com:A-san/Spoon-Knife.git
$ git pull A-san new-feature
$ git push origin new-feature

自分のHEADとAさんがブランチを切ったときのHEADがズレているとpullのタイミングでマージコミットができますが、今回は気にしないことにします。

これで手元のnew-featureブランチを修正してpushすればTravis CIでの動作確認ができるというわけです。

もっといい手があると思う!

Git魔術師の方々ならどうするか、教えてほしいです!

35
31
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
35
31