フォークせずにプルリクエスト?


105

GitHubで他の人のコードに貢献するにはどうすればよいですか?」というトピックからのコード貢献の手順を次に示します

  1. プロジェクトをフォークする
  2. よくコメントされた1つ以上のリポジトリにコミットをクリーンアップします。複数のパーツまたはフィーチャーを変更する場合は、ここで新しいブランチを作成できます。
  3. githubのウェブインターフェースでプルリクエストを実行します。

レポをフォークせずにプルリクエストを行うことはできますか?

いくつかのプルリクエストのためにフォークされた私のアカウントに20を超えるリポジトリが表示されるのは非常に悲しいことです。彼らはその時活動がなく、星/フォロワーはゼロです。誰かのコードをコピーして、ブラックデーをやっているようです。


なぜしたいですか?

3
良い質問。また、20個のリポジトリを元のリポジトリで最新にする(または削除する)ことも不明確です。
Corey Alix

回答:


95

そのリポジトリにブランチを作成するためのアクセス権がない場合、forkせずにプルリクエストを作成する方法はありません


8
そのリポジトリのブランチにアクセスできる場合にプルリクエストを作成する方法を説明していただけますか?
bolinfest 2014

13
GitHubには、それに関する優れたガイドがあります。help.github.com
Ryan Bigg

2
誰にとってもそれほど明確ではないかもしれない何かのための単なるリマインダー。貢献するすべてのリポジトリに対してフォークを作成する必要があります...しかし、フォークにブランチを作成すると、アップストリームレポに対して一度に複数のPRを処理できます。20のPRで貢献するために、同じリポジトリから20のフォークを必要としません。
JulioHM

24

プルリクエストが受け入れられたら、リポジトリを安全に削除できます。

その後、単純に元の上流レポから直接クローンを作成します。

作成する他のプルリクエストがある場合は、それぞれのブランチで作成する必要があります。つまり、作成したブランチを安全に削除して、受け入れられたプルリクエストを管理できます(「プルリクエストがマージされました。次は?


2
ちなみに、githubは最近プルリクエストをマージするボタンを追加し、プルリクエストブランチを簡単に(そして直感的に)削除できるようにしました:github.com/blog/1335-tidying-up-after-pull-requests
David M

10

定義では、宛先リポジトリへのコミットアクセスがない限り、プルリクエストにはフォークが含まれます。ただし、いくつかのことができます。

  1. あなたがいる場合コミット権限を持って、ブランチを作成し、新しいブランチに対するあなたのプル要求を行います。
  2. 問題の本文にパッチを投稿してください。これは実際にはGitHubの方法ではありませんが、確実に機能します。
  3. リポジトリをフォークしてプルリクエストを作成し、プルリクエストがマージまたは拒否されたらフォークを削除します。

アクティブに使用していないリポジトリを維持しないようにする場合は、オプション#3をお勧めします。ダッシュボードを乱雑にすることなく、承認されたGitHubワークフローに固執します。


おそらくここに置くのが最適です。そのアカウントはメインアカウントではないため、20の非アクティブなリポジトリが含まれていても問題ありません。
tanius

7

githubが共有リポジトリモデルをサポート

共有リポジトリモデルは、小規模なチームや組織がプライベートプロジェクトで共同作業を行う場合に広く普及しています。全員に単一の共有リポジトリへのプッシュアクセスが許可され、トピックブランチを使用して変更を分離します。

プルリクエストは、フォークの変更についてプロジェクト管理者に通知する方法を提供するため、フォーク&プルモデルで特に役立ちます。ただし、共有リポジトリモデルでは、メインラインブランチにマージする前に一連の変更に関するコードレビューと一般的なディスカッションを開始するために使用されます。


5
このモデルでプルリクエストを作成する方法を説明していないことに注意してください。
bolinfest 2014

0

あなたはまだその1ライナーが必要です: hub fork;git push -u $GIT_USER HEAD;hub pull-request

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.