Githubでforkしたリポジトリから出されたPRに修正コミットを重ねたい場合

GithubでPR出す場合、大きく分けて以下の2つの方法でPR元のBranchを作るのが一般的だと思う。

  1. オリジナルのリポジトリにtracking branchを作成する方法
  2. オリジナルのリポジトリをforkしたリポジトリにtracking branchを作成する方法

1.の場合は、ブランチをローカルに持ってきて、commit && pushしていけばいいので、今回は2.のケース。

もちろん2.の場合でも、PRをローカルにfetchしてくることはできる。

ただ、どこに向けてpushしたらいいかがよく分からない。

素人考えでは、2つ方法がありそうな気がしていた。

  1. 別のtracking branchを作成して、PR元のブランチ(fork先)にPRを出して から取り込んでもらう(2段階でマージ)
  2. 別のtracking branchを作成して、オリジナルのリポジトリにPRをPRを作成し直す

いずれの方法も1つのPR・branchとして取り扱えないので、自分が無知なばかりにイケてない使い方をしている気がして、友人に質問したら下記の情報が出てきた。

help.github.com

ほぼタイトルのまんまですが、PRの"Allow edits from maintainers."にチェックを入れておくと、(若干お行儀が悪い気がするけれど、、)フォーク元リポジトリのメインテナに限って、そのリポジトリに対してpushできるようになるらしい。

git remote addでPR元のリポジトリ追加したりの手間はあるけれど、PRの修正の手順自体はだいぶ綺麗になる気がした。

基本的にPRはPRの作成者が、レビューやコメントを元に責任持って修正するみたいなシナリオが多い気がしたので、今回こういう使い方ができることを知れたのは新鮮だった。