web-dev-qa-db-ja.com

GitHubで他のコードに貢献するにはどうすればよいですか?

GitHub で特定のプロジェクトに貢献したいと思います。私はforkそれをすべきですか? Branchそれ?推奨されるものとその方法

229
wizztjh

理想的には:

  1. フォーク プロジェクト
  2. リポジトリに対して1つ以上のコメント付きのクリーンなコミットを作成します。複数の部品または機能を変更する場合は、ここで新しいブランチを作成できます。
  3. GithubのWebインターフェイスで プルリクエスト を実行します。

新しい機能リクエストである場合、最初にコーディングを開始しないでください。問題を投稿して、新機能について話し合うことを忘れないでください。

機能が十分に議論されており、+ 1がある場合、またはプロジェクトの所有者が承認した場合は、問題を自分に割り当ててから、上記の手順を実行します。

一部のプロジェクトでは、プルリクエストシステムを使用しません。コードをプロジェクトに戻す最適な方法については、著者またはメーリングリストで確認してください。

180
Yann Ramin

Yann's answer に追加するには、プロジェクトを分岐したら、任意のブランチ(新しいブランチ、または元のプロジェクトのブランチ)で開発できます。

忘れないでください:

31
VonC

YanとVonCの回答に追加するには、これはgithub自身からの優れたリソースです。 http://help.github.com/forking/

また、右側のサイドバーの「コラボレーション」見出しの下を確認してください。

15
brycemcd

Railscastのすばらしいビデオがあります こちら プロセスを順を追って説明します。また、貢献するとき、テスト、サブモジュールなどを使用して作業するブランチを決定する方法を示すなど、いくつかの良いヒントがあります。

このスクリーンキャストは主にRails開発者に焦点を当てていますが、ほとんどの情報はあらゆるオープンソースプロジェクトへの貢献に有効です。

10
SnapShot

Githubには、プロジェクトに協力する多くの方法があります。ほとんどのプロジェクトで使用されるモデルはプルリクエストモデルです。私は、人々が最初のGitHubプルリクエストを行うのを支援するプロジェクトを開始しました。 ここで最初のPRを作成してください のハンズオンチュートリアルを行うことができます

ワークフローは次のように簡単です

  • GitHubでレポをフォークする
  • リポジトリをマシンにクローンします
  • ブランチを作成し、必要な変更を加えます
  • GitHubのフォークに変更をプッシュするgit Push Origin branch-name
  • GitHubの分岐点に移動して、Compare and pull requestボタンを表示します
  • それをクリックして、必要な詳細を入力してください
4
sudo bangbang

lornajaneには、プロセスをよく説明するブログ投稿があります。 http://www.lornajane.net/posts/2010/contributing-to-projects-on-github

3
dan_nl

技術的なワークフロー

次のワークフローをお勧めします。

  1. リポジトリをフォークします(GitHub Webインターフェイス:「フォーク」ボタンを使用)
  2. 分岐したリポジトリで、URLをコピーします
  3. クローン(コマンドライン)

    git clone <url-from-your-workspace>

  4. 作成したディレクトリを入力し、ブランチを作成します

    cd <directory> git checkout -b <branchname>

  5. 今、あなたの変更を行います

  6. 各変更後に1つ以上のコミットを作成できます。

    commit -a

  7. 完了したら、変更をプッシュします

    git Push Origin <branch>

  8. コマンドラインで、 PRを作成するURLを参照 にする必要があります。 URLにアクセスし、ボタンをクリックしてPRを作成します。

  9. そうでない場合は、ブラウザでリポジトリにアクセスすると、プルリクエストを作成するためのボタンが表示されます

それでおしまい。

したがって、基本的に、リポジトリをワークスペースに分岐し、新しいブランチを作成して、その新しいブランチをプッシュしました。

後で同じクローンリポジトリからより多くのPRを作成する場合、別のPR用に別のブランチを作成する前に、同期する(元のリポジトリから最新の変更を取得する)必要があります。

git checkout master
git remote add upstream <url-of-original-repo>
git pull upstream master

その他の考慮事項:

  • プロジェクトに貢献ガイドラインがある場合があります:CONTRIBUTING.rstまたは.mdファイルを探します
  • プロジェクトのコーディングガイドラインに従うことをお勧めします
  • 最初にあなたのアイデアを問題として概説したいかもしれません
  • プロジェクトのプルリクエストタブを見て、開いているPR、マージされたPRがあるかどうかを確認することができます

これらの提案は、マージされないPRに作業を投入する手間を省くためのものです。プロジェクトにアクティビティがあり、PRがマージされる場合、これは良い兆候です。貢献ガイドラインがある場合は、それらに従ってください。

常に丁寧に。プロジェクトのメンテナーはあなたのPRをマージする義務を負いません。プロジェクトに追加する価値のあるものはありますか?

2
Sybille Peters