GitHubで他の人のコードに貢献するにはどうすればよいですか?[閉まっている]


231

GitHubの特定のプロジェクトに貢献したいと思いますフォークすべきか?ブランチ?何が推奨され、どのように行うのですか?


61
別のとんでもないクローズ
スティーブン

4
GithubでのConcrete5への貢献について、より詳細なステップバイステップガイドを書きましたが、このプロセスはどのプロジェクトにも適用できます。ご覧ください
Joe Meyer

7
これがどのように「建設的」ではないのか、実際にはわかりません。投票と意見だけで、それが人々が回答を求めている人気のある質問であることを証明します。
Ian


1
おそらく十分な過半数の投票があれば、以前に閉じられた質問を再び復活させて、人々が再びスレッドに貢献できるようにする必要があります。
Peter Teoh、2015年

回答:


180

理想的には:

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

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

機能について十分に話し合い、+ 1またはプロジェクトオーナーが承認した場合は、問題を自分に割り当ててから、上記の手順を実行します。

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



1
はい、プルリクエスト。マージ要求は、意味のある用語です。
Yann Ramin、2010

2
@MariusKavanskyそれは逆です!何に取り組むべきかがわかったら、貢献するのはあなただけです:)
hashbrown

オープンソースプロジェクトに貢献した後。新しい機能である場合は、問題を開いて新しい機能について話し合う方がよいと思います。十分に議論されている機能または問題である場合は、その問題を自分に割り当ててから、上記の手順を実行してください。これは私の2セントです。
wizztjh

@hashbrown、彼はこれまでにリクエストされた機能の「リスト」はどこにあるのかと尋ねています。すでにリクエストされ、+ 1されている機能。
パセリエ2016年

31

Yannの答えに追加するには、プロジェクトをフォークしたら、必要なブランチ(新しいブランチ、または元のプロジェクトからのブランチ)で開発できます。

覚えておいてください:


1
2番目のポイント(リベースブランチ)に詳細またはリンクを追加できますか?
JorgeArtware、2014年

1
@JorgeArtwareリベースを示すいくつかのリンクで回答を更新しました。
VonC、2014年

@VonCここで質問しますが、必要だと思われる場合は、まったく新しい質問をします。「まっすぐな歴史」以外に、なぜマージではなくリベースするのですか?言い換えれば、これは私がいくつかのプロジェクトに貢献したとき(機能ブランチのPRが開発ブランチとマスターブランチにマージされた後) git checkout master; git pull;に行うことです。開発の場合も同じです(機能ブランチが最初にマージされた場合)。 「pull vs pull --rebase」と「merge vs rebase」を読んだ後は、単純な歴史です。他にもっと深いものはありますか?
linuxbandit 2017年

「貢献」(このページのコンテキスト)の観点から@grasshopperを使用する場合、プッシュする前に常にローカルコミットを更新されたブランチに基づいてリベースする必要があります。これにより、メンテナが元のプロジェクトブランチに統合するのは簡単になります。あなたのPRが受け入れられた質問のコンテキストでは、確かに、既存のブランチを更新するためにリベースする代わりにマージすることができます。
VonC 2017年

(申し訳ありませんが、githubを反映するためにユーザー名を変更しました)-@VonCありがとうございます。私がリベースについて読んでいた提案はすべて、PRの前に適用されます。受け入れられてマージされたPRをローカルリポジトリ内に反映するために、一般的な方法(マージではなくリベース)がありますか、それとも何ができますか?別のPRを送信する場合はどうなりますか?
linuxbandit 2017年

15

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

また、「サイドバー」の見出しの下にある右側のサイドバーも確認してください。


10

プロセスについて説明する優れたRailscastビデオがここにあります。また、貢献するときにどのブランチに取り組むかを決定する方法を示す方法、テスト、サブモジュールを使用する方法など、多くの優れたヒントもあります。

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


4

Githubには、プロジェクトとコラボレーションする多くの方法があります。ほとんどのプロジェクトで使用されるモデルは、プルリクエストモデルです。最初のGitHubプルリクエストを行う人々を支援するプロジェクトを開始しました。あなたはここであなたの最初のPRするために実践的なチュートリアルをすることができます

ワークフローは簡単です

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


2

技術ワークフロー

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

  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をマージする義務を負うことは決してありません。プロジェクトに追加する価値のあるものはありますか?


1
非常に詳細なプロセス(私の9歳の回答よりも正確)。賛成。
VonC
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.