状況
- メインのリポジトリがある
- 各開発者はメインのリポジトリから develop ブランチをローカルにクローンする
- ブランチを切ってローカルで開発
- 開発の結果は「メインのリポジトリとは別の」自分のリモートリポジトリにプッシュ
- 自分のリモートリポジトリから、メインのリポジトリにプルリク
ここまではよくあるのでよい。
課題
- メインのリポジトリにきたプルリクを、ローカルにクローンしてレビューする
- レビューして、実際にソースを変更し、その結果をプルリク元にプルリクする
手法
1.メインのリポジトリにきたプルリクを、ローカルにクローンしてレビューする
# 概要
git fetch メインのリポジトリにつけている名前 pull/プルリクについている issue番号#のやつ/head:任意の新しくローカルで作るブランチ名
# 実際
git fetch upstream pull/72/head:pull/nakanishi/new_feature
すると pull/nakanishi/new_feature というローカルリポジトリに落とせる。
2.レビューして、実際にソースを変更し、その結果をプルリク元にプルリクする
- pull/nakanishi/new_feature で開発して、そこにコミット
- プッシュする。すると、自分のローカルのブランチにプッシュされる
- これを、メインのリポジトリのプルリクから、プルリクを出した人のリモートリポジトリにプリリクする
3 がわかりずらいので画像で
メインのリポジトリから、上の画像の画面から、プルリク出す緑のボタンを押す
すると上記画像のようなプルリクの詳細画面になるので、メインリポジトリではなく、プルリクを出して来た人のローカルリポジトリにプルリクをする。ブランチも変更することを忘れずに。
- するとプルリクを出して来た人のリモートリポジトリに、レビューしたプルリクが来るので、これをマージしたり、断ったりする。
- マージすると、その結果は、即、メインリポジトリのすでに出ているプルリクに反映される。
以上です。