web-dev-qa-db-ja.com

GitHub pull requestを実行する方法

GitHubでホストされている別のリポジトリにプルリクエストを作成したり送信したりするにはどうすればいいですか?

276
tim peterson

プルリクエストを行う方法を学ぶために、私はちょうどGithubの2つの別々のヘルプページをたどった(下の箇条書きとしてリンクされている)。次のコマンドラインコマンドはパート1用です。 パート2、実際のpull requestは、GithubのWebサイトで完全に行われています。

$ git clone https://github.com/tim-peterson/dwolla-php.git
$ cd dwolla-php
$ git remote add upstream https://github.com/Dwolla/dwolla-php.git
$ git fetch upstream
// make your changes to this newly cloned, local repo 
$ git add .
$ git commit -m '1st commit to dwolla'
$ git Push Origin master
  • パート1:誰かのレポをforkする: https://help.github.com/articles/fork-a-repo

    1. この場合、あなたが貢献したいレポの 'fork'ボタンをクリックしてください: Dwolla's PHP repo (Dwolla/dwolla -php)
    2. この場合、新しく作成したforkのURLを取得します。 https://github.com/tim-peterson/dwolla-php.git (tim -peterson/dwolla-php)
    3. 上記のgit clone->cd dwolla-php->git remote->git fetchシーケンスをタイプしてあなたのコンピュータのどこかにあなたのフォークを複製し(すなわち、この場合はthird_party TimPeterson$に "コピー/ペースト")そしてそれをマスターリポジトリと同期させます(Dwolla/dwolla-php)
    4. あなたのローカルレポにあなたの変更を加える
    5. リモートレポジトリへの変更をプッシュするには、上のgit add->git commit->git Pushシーケンスを入力してください。つまり、Github上のあなたのフォーク(tim-peterson/dwolla-php)です。
  • パート2:pull-requestを作成します。 https://help.github.com/articles/using-pull-requests

    1. githubでフォークのWebページにアクセスします( https://github.com/tim-peterson/dwolla-php
    2. 「プルリクエスト」ボタンをクリック
    3. pull-requestに名前を付け、あなたが行った変更の詳細を記入し、送信ボタンをクリックしてください。
    4. これで終わりです!
198
tim peterson

(公式の「 GitHubヘルプ「プルリクエストの使用」ページ
GitHubでの分岐と分岐 」、「 GitHubでのOriginとアップストリームの違い 」も参照

プルリクエストに関するいくつかのヒント:

最初にレポジトリをフォークを持っていると仮定すると、あなたが所有するそのフォークで行うべきことは次のとおりです:

  • ブランチを作成する:ブランチ内の変更を分離します。 masterからプルリクエストを作成しないでください。一度にいくつかの修正を蓄積して混合したくなる可能性があります。
  • そのブランチをリベースします:たとえそのブランチからプルリクエストをすでに行っていても、Origin/masterの上にリベースします(パッチがまだ機能していることを確認します)プルリクエストを自動的に更新します(クリックする必要はありません)
  • そのブランチを更新します:プルリクエストが拒否された場合、単に新しいコミットを追加したり、履歴を完全にやり直したりできます:既存のプルをアクティブにします再度リクエストしてください。
  • "focus" that branch:つまり、トピックを「タイト」にし、何千ものクラスとすべてのアプリを変更せずに、明確な機能、変更を小さく保つ
  • そのブランチを削除します:受け入れられたら、フォークでそのブランチを安全に削除できます(および git remote Prune Origin )。 GitHub GUIは、プルリクエストページでブランチを削除することを提案します。

注:Pull-Request自体をwriteするには、「 完全なプルリクエストの書き方 "(2015年1月、GitHub)


2016年3月:新しいPRマージボタンオプション:「 レビューコメント後のプルリクエストでのWebインターフェイスからのGithubスカッシュコミット? 」を参照してください。

squash

リポジトリの管理者は、これらのPRコミットをmerge --squashに選択できます。


プルリクエスト後

最後の点に関しては、2013年4月10日、「再設計されたマージボタン」から、ブランチは削除されます:

new merge button

マージ後のブランチの削除も簡素化されています。
追加の手順で削除を確認する代わりに、削除したブランチをすぐに削除し、必要な場合にブランチを復元するための便利なリンクを提供します

これは、プルリクエストをマージした後にブランチを削除するベストプラクティスを確認します。


プルリクエストとリクエストプル


「リポジトリ」の電子ノート(原文)

<humour>

その(プルリクエスト)は、GitHubによって適切に定義されていません!

幸いなことに、真のビジネスニュース組織は知っていて、プルリプレースメントを「e-note」に置き換えるための e-note があります。

https://pbs.twimg.com/media/BT_5S-TCcAA-EF2.jpg:large

リポジトリotoryに電子メモが必要な場合...Fox Businessに質問 =。彼らは知っています。

</humour>

233
VonC

プルリクエストをするには、次の手順を実行する必要があります。

  1. (プルリクエストをしたい)リポジトリをフォークします。リポジトリページのフォークボタンをクリックするだけで、githubのユーザー名の前に別のgithubリポジトリが表示されます。
  2. リポジトリをローカルマシンにクローンします。あなたのローカルマシンにインストールしたGithubソフトウェアはあなたのためにこれをすることができます。リポジトリ名の横にあるクローンボタンをクリックします。
  3. ファイルをローカルに変更/コミットする
  4. 変更を同期する
  5. あなたのgithubフォークリポジトリに行き、ブランチボタンの横にある "Compare&Review"グリーンボタンをクリックしてください。 (ボタンにアイコンがあります - テキストなし)
  6. 変更を表示した新しいページが開き、プルリクエストのリンクをクリックして、フォークしたリポジトリの元の所有者にリクエストを送信します。

これを理解するのにしばらく時間がかかりました。これが誰かに役立つことを願っています。

68
Farhan

私は最初のGitHub pull requestをする人々を助けるためのプロジェクトを始めました。あなたがここであなたの最初のPRを作るために 実践的なチュートリアルをすることができます

ワークフローは以下のように簡単です。

  • Githubでレポをフォークする
  • Clone repoボタンをクリックしてクローンのURLを取得してください
  • 端末に行き、git clone <clone url you copied earlier>を実行してください。
  • あなたが行っている変更のブランチを作るgit checkout -b branch-name
  • 必要な変更を加える
  • 変更を確定しますgit commit
  • あなたの変更をGitHubのあなたのフォークにプッシュしてくださいgit Push Origin branch-name
  • Compare and pull requestボタンを見るためにGitHubのあなたのフォークに行きなさい
  • それをクリックして必要な詳細を記入してください
13
sudo bangbang

Github.comのアカウントを持っていても、コマンドラインに "git"と入力したときに厄介なエラーメッセージしか表示されない場合は、こちらをブラウザで実行してください。

  1. TimとFarhanが書いたのと同じ:自分のプロジェクトのコピーをフォークする: Step 1: Fork
  2. 数秒後、あなたはプロジェクトのあなた自身のフォークされたコピーにリダイレクトされるでしょう: Step 2
  3. 変更するファイルに移動して、ツールバーの[このファイルを編集]をクリックします。 Step 3: Edit a file
  4. 編集後、変更点を記述してから「変更をコミット」をマスターブランチにも書いてください(これはあなた自身のコピーであり、「メイン」プロジェクトではないためです)。 Step 4: Commit changes
  5. 編集する必要があるすべてのファイルについてステップ3と4を繰り返してから、プロジェクトのyour copyのルートに戻ります。緑色の[比較、確認...]ボタンをクリックします。 Step 5: Start submit
  6. 最後に、リクエストの見出しと説明を再確認した後、[プルリクエストの作成]をクリックしてから[プルリクエストの作成]をもう一度します。 enter image description here
12
Sphinxxx

私はtim petersonの指示に従いましたが、私は自分の変更のためにローカルブランチを作成しました。しかし、プッシュした後、GitHubに新しいブランチが表示されなくなりました。解決策は、Pushコマンドに-uを追加することでした。

git Push -u Origin <branch>
3
tamalet

私はあなたのためにPRブランチを設定するすべての作業を行うbashプログラムを書きました。必要に応じてフォークを実行し、アップストリームとの同期、アップストリームリモートの設定などを行います。変更をコミットし、PRをプッシュして送信するだけです。

実行方法は次のとおりです。

github-make-pr-branch ssh your-github-username orig_repo_user orig_repo_name new-feature

プログラム はこちら にあり、そのリポジトリには同じプロセスを手動で実行するためのステップバイステップガイドも含まれています。それはうまくいき、そしてあなたの機能を上流のmasterや他の役に立つ情報で最新に保つ方法に関する追加情報も。

1
stason