質問: GitHubのパブリックリポジトリでGitHub flowを実施するためには、どのようにしたらいいのでしょうか? GitHub flowとは以下のようなフローを指しております。 1. masterブランチは常にデプロイできる状態とする。 2. 新しい作業をするときはmasterブランチから記述的な名前のブランチを作成する。 3. 作成したローカルリポジトリのブランチにコミットする。 4. 同名のブランチをGitHubのリポジトリに作成し、定期的にPushする。 5. 助けてほしいときやフィードバックがほしいときはPull Requestを作成し、Pull Requestでやり取りする。 6. 他の開発者がレビューし、作業終了を確認したらmasterブランチにマージする。 7. masterブランチへマージしたら直ちにデプロイする。 有名なフローなので、ご存知の方も多いとは思うのですが、これはパブリックリポジトリではどのように実現するのでしょうか? AとBの二人で作業することを想定してください。 そうすると、普通に考えると、合計4つのリポジトリが存在します。 Aのローカルリポジトリ、リモートリポジトリ(GitHubに存在)、Bのローカルリポジトリ、リモートリポジトリ(GitHubに存在)の四つです。 しかしながら、GitHub flowでは登場するリポジトリは全部で3つです。すなわち、Aのローカルリポジトリ、Bのローカルリポジトリ、共通のリモートリポジトリです。 そこで、例えばAのローカルリポジトリをGitHub flowにおけるリモートリポジトリとしても、Aはアクセス可能ですが、Bは直接アクセスできないのではないでしょうか? すなわち、BがAのリモートリポジトリにアクセスするためには、一旦自分のリポジトリへと持ってくるために、forkし、それから自身のリモートリポジトリに変更をpushした後に、Aのリモートリポジトリにpull requestする以外に、Aのリポジトリに対して変化を及ぼすことはできないのではないでしょうか? 分かりずらかったら、お知らせ下さい。 回答お待ちしております。
回答: こんにちは。 ForkしないでPull Requestすることができるようです。 GitHubのリポジトリをAさんとBさんの両者ともが共有し、トピック・ブランチへPushしてそこからPull Requestする方法もあるようです。(私はやったことないのですが。) たぶん、同じ部署内等の密なグループでやる場合に向いていると思います。 FOSSのように疎な人たちで開発する時はForkした方が安心な気がします。