Githubプルリクエストを変更する方法?


163

プロジェクトへのプルリクエストを開きました。メンテナはそれを受け入れることに決めましたが、一部のコンテンツを変更するように言われました。

どうすればできますか?コミットハッシュを変更しないでおく必要があるかどうか、どうすればよいですか?


回答:


178

リクエストの対象となるブランチにさらにコミットをプッシュするだけです。プルリクエストはこれを受け取ります

例:

bをマスターにマージしたい場合

  1. あなたはc1、c2、c3をbにプッシュします
  2. 次に、bの新しい要求を行います
  3. それはレビューされ、より多くのコミットが必要です
  4. あなたはc11、c21、c31をbにプッシュします
  5. プルリクエストに6つすべての6つのコミットが表示されます

6
このプルリクエストの作成者以外の誰かがこのプルリクエストにコミットを追加することは可能ですか?
スカイワインダー14

4
特定のブランチにプッシュする全員
Daij-Djan 2014

@ Daij-Djanは非常に頻繁に、誰かがプルリクエストを行うと、リポジトリのフォークにプッシュします。彼のフォークへのコミットアクセス権を持たない人々がそのようなPRにコミットを追加することは可能ですか?
MaciekŁoziński'19年

1
@skywinder多分あなたはこの質問をチェックすることができます:プルリクエスト(Github)で他の人のコードを変更することは可能ですか?
MaciekŁoziński'19年

@MaciekŁoziński答えは、「特定のブランチにプッシュできます[]」の場合のみです:)
Daij-Djan

34

プルリクエストで1回だけコミットし、git commit --amendそれを更新するために使用しました。それから私は強制的なプッシュをしたgit push -fので、私の修正されたコミットは元のコミットを置き換えました。プルリクエストは自動的に新しいコミットをピックアップしました。(実際には両方のコミットが表示されていましたが、ページをリロードすると、古いコミットが消えていました。)

したがって、強制プッシュは一般的には推奨されませんが、プルリクエストには役立ちます。誰かがあなたのコミットをベースにしている場合、変更後にリベースを行わなければならないため、これはお勧めできません。しかし、誰もレビュー中のプルリクエストに基づいて作業を行うべきではないため、この状況ではかなり安全です。


8

変更を続けて同じブランチにプッシュし続けると、洗練されたコミットが同じプルリクエストに追加されます(プルリクエストがマージされていない場合)。これは、歴史を非常に乱雑にする可能性があります。

私が使用する代替ソリューションとテクニックは次のとおりです:

  1. 次のようにして、プルリクエストを送信するリポジトリ(アップストリーム)とブランチ(開発)から新しいブランチ(修正)を作成します。

    gitブランチはアップストリーム/開発を修正します

  2. 新しく作成したブランチに、洗練されたコミットを直接追加します。

    git commit -m "メッセージ"

  3. このブランチを独自のフォークされたリモートにプッシュします(originという名前にすることもできます)。

  4. クリーンなコミット履歴で新しいプルリクエストを比較して送信します。
  5. また、プルリクエストがマージされた後でブランチを削除することをお勧めします。
  6. また、以前のプルリクエストをコメントして閉じることができます。

1

github apiを使用することもできます。

カールの

curl --user "your_github_username" \
     --request PATCH \
     --data '{"title":"newtitle","body":"newbody",...}' \
     https://api.github.com/repos/:owner/:repo/pulls/:number

詳細なデータリストはgithub developer docにあります

例:プルリクエストの名前を変更する

curl --user "jeremyclement" \
     --request PATCH \
     --data '{"title":"allows the control of files and folders permissions."}' \
     https://api.github.com/repos/Gregwar/Cache/pulls/9

私がしようとした変更の枝が、私は思うhead/labelし、head/ref編集できません。
hexaJer 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.