プライベートGithubリポジトリの共同編集者は、それぞれリポジトリをフォークすべきですか?


14

私は現在プロジェクトに取り組んでおり、Githubのプライベートリポジトリにソースコードがあり、私たちはそれぞれ共同作業者です。

不明な点は、各作業を分離する方法です。

私たちがする必要があると思うことは:

  1. リポジトリをフォークする必要があります
  2. コードをプッシュする準備ができたら、プルリクエストをプロジェクトリーダーのレポジトリに送信します。レポジトリは、これを同時にコードレビューを行う機会として使用できます

プライベートリポジトリに関しては、これはフォークを使用することになっているのでしょうか、それとも状況を複雑にしすぎていますか?


1
はい。ここで提案したように、チームを作成し、チームのレポを「マスター」レポにするだけです。プロジェクトリーダーを含む全員がPRを作成します。
ラバーダック

回答:


7

リポジトリを開発者のローカルマシンに複製することは、すでに一種の分岐です。各開発者がGitHubでレポジトリをフォークした場合、これは現在の作業状態を公開するためだけに役立ちます。

これは、中央のマスターリポジトリと、そのリポジトリへの直接アクセスで信頼されていない多くの貢献者がいる場合に適切です。これは、誰でもプルリクエストを提供および発行できるオープンソースプロジェクトに最適で、プルリクエストはコアメンテナーのグループによってレビューおよびマージされます。複数のリポジトリを使用すると、プルリクエストベースのワークフローが強制されます。

小さく信頼できるチームでは、これは必要ありません。さまざまな人が互いに邪魔するのを防ぐために、Git Flowなどの戦略に従うことができます。小さな機能はそれぞれ、個別の機能ブランチに実装されます。機能が完了すると、masterブランチにマージされます。ほとんどのチームは、これをプルリクエストまたは慣例によりコードレビューと結び付けますが、適切な場合はそれをスキップするのに十分な信頼を得ています。別個のレポジトリは、開発者がフォークされているがチームに見えるレポジトリで現在の状態を公開するのに対して、単一の共通レポジトリでは、変更を別の機能ブランチにプッシュします。マスター/トランクですべての開発を行うことは、ほとんどのワークフローで非常に推奨されていません。

違いは、アクセス管理のみに関するものであり、実装されたワークフローに関するものではありません。どちらの設定でもプルリクエストベースのワークフローを実行できます。生のGitの観点から見ると、フォークとブランチの間に大きな違いはありません。どちらのアプローチも基本的にプロジェクトの履歴を共有し、他のブランチ/フォークに影響を与えずにコミットを追加できます。これを考慮すると、信頼できる閉じたグループにいる場合、単一のレポを共有する方がはるかに良いでしょう。


1
@amonの言うことをすぐに反映するために、私はすべての開発者がメインリポジトリから分岐する必要がある組織で働いてきました。なぜそれが必要なのか理解できませんでしたが、私たちの運用チームはそれを議論しませんでした。プロセスは次のとおりです。コミット->プッシュ->プルリクエスト->待機->待機-> opsチームのIRCの注意を引き付けようとする-> opsの担当者のところまで歩いて、プルリクエストを確認するように依頼します->待機->コード統合->繰り返し。
DaveyDaveDave

1
私はこのワークフローを本当に落胆させます。正規のレポに直接プッシュする2人の開発者との本当に悪いマージ競合を経験しました。言うまでもなく、他の人にコードをレビューしてもらうことをお勧めします。それぞれにフォークがある場合、プルリクエストを送信する方がはるかに簡単です。また、標準的なプロジェクトリポジトリが1つあります。ええ、ええ。私は知っている、それは「分散」ではない。なんでも。私の経験では、フォークとPRモデルの方がうまく機能しています。
ラバーダック

@RubberDuckは良い点です。プルリクエストの責任者がコードをレビューする立場にないという点で、私のケースはまれであると思われます。gerritがより効果的である可能性があるなど、コードレビュー用の他の専用ツールをお勧めしますが、フォークも同様に機能する(できる)ことを強調します。
DaveyDaveDave

問題は、いつ機能をマスターする準備ができたかを判断することです。また、ブランチを扱うのは面倒です。1つのレポに数百のブランチがあり、それらのほとんどがマージされていないか、半分完了しているのに、マージする準備ができていないのに、なぜ存在するのでしょうか?アクセス管理はワークフローについて100%です。この答えは半分しかありません。
ルドルフオラー

5

これは機能するか、各contribが独自のブランチを持ち、チームが同意したときにmasterとマージされるブランチ方法を使用できます。


おかげで、詳細については他の答えに行くつもりですが、はい、私は同意します:)
JMK
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.