web-dev-qa-db-ja.com

Forkされたリポジトリからpullリクエストを更新するにはどうすればいいですか?

それで私は最初にリポジトリをフォークし、それからそのフォークされたリポジトリにコミットしました。それからプルリクエストを開きました。 pullリクエストは私が欲しかった全ての変更をリストしました。

プルリクエストを確認した後、リポジトリ所有者がそれを受け入れる前に私にしてほしかった変更がいくつかありました。私は自分のフォークでそれらの変更を加えました、今どのように私はそれらの変更でpull requestを更新するのですか(またはこれは私がそれを処理するべきではない方法ですか?)

549
stevebot

あなたはそれを正しくしました。プルリクエストは自動的に更新されます。プロセスは以下のとおりです。

  1. オープンプルリクエスト
  2. あなたの地元のレポのフィードバックに基づいて変更をコミットする
  3. あなたのフォークの適切なブランチにプッシュする

プルリクエストは、プルリクエストの議論の最後に新しいコミットを自動的に追加します(すなわち、 すでに存在しています、下にスクロールしてください! )。

533
shelhamer

GitHubでプルリクエストを更新するのは、(プルリクエストで使用されていた)既存のブランチに必要な変更をコミットするのと同じくらい簡単ですが、多くの場合、変更を単一のコミットに圧縮することもあります。

git checkout yourbranch
git rebase -i Origin/master

# Edit command names accordingly
  pick   1fc6c95 My pull request
  squash 6b2481b Hack hack - will be discarded
  squash dd1475d Also discarded

git Push -f Origin yourbranch

...そして今、pull要求はただ1つのコミットを含んでいます。


リベースに関する関連リンク:

73
jmu

プルリクエストが参照しているブランチにプッシュするだけです。プルリクエストがまだ開いている限り、追加されたコミットで自動的に更新されるはずです。

31
igorw

私は以下の手順でそれを行いました:

  1. git reset --hard <commit key of the pull request>
  2. 私がしたいと思っていたコードの変更はありましたか
  3. git add
  4. git commit --amend
  5. git Push -f Origin <name of the remote branch of pull request>
10
VicJordan

Windowsで GitHubを使用している場合

  1. ローカルに変更を加えます。
  2. GitHubを開き、ローカルリポジトリに切り替え、リポジトリをダブルクリックします。
  3. ブランチ(ウィンドウの上部近く)をプルリクエストを作成したブランチ(つまり、比較のフォーク側のブランチ)に切り替えます。
  4. 右側にコミットコメントを入力し、あなたの地元のレポに変更をコミットするオプションがあるはずです。
  5. 一番上の[同期]をクリックすると、特にコミットがローカルからリモートフォークにGitHubにプッシュされます。
  6. Pull要求は追加のコミットで自動的に更新されます。これはpullされたリクエストがあなたのforkのブランチとの差分を表すからです。プルリクエストのページ(あなたや他の人があなたのプルリクエストについてコメントできるページ)に行ったら、コミットタブにあなたの追加のコミットがあるはずです。

これが、あなたが自分で変更を始める前に、プルリクエストに入れる予定の変更のセットごとにブランチを作成するべきだという理由です。このようにして、一旦pull requestをしたら、それから別のブランチを作り、前のpull requestに影響を与えずに他のタスク/機能/バグ修正を続けることができます。

3
AaronLS