web-dev-qa-db-ja.com

既存のプルリクエストでブランチにプッシュを強制するとどうなりますか?

私は現在githubのクローズドプルリクエストの一部であるgitブランチに取り組んでいます。最初のプルリクエストに続いて、いくつかの追加のコミットを行い、それらのコミットをgithubにプッシュしてから、コミットを修正する必要があるため、それらのコミットを元に戻し、再コミットしました。

これらのコミットをgithubにプッシュする場合は、強制プッシュを発行する必要があります:git Push --force。しかし、プルリクエストを行う前に存在していたコミットの後に変更されたコミットが発生したとしても、これが既存のプルリクエストで混乱を引き起こす可能性があると強く感じています。

誰かが私にこの状況を処理するための最良の方法を説明できますか?まったく新しいブランチを作成してから、代わりにそのブランチでプルリクエストを発行する必要があると思います。ただし、これを既存のプルリクエストにリンクする方法がある場合は、それが望ましいでしょう。

17
fraxture

私のメモリが正しく機能している場合、何らかの方法で問題のブランチを強制的にプッシュまたは更新すると、GitHubは自動的にプルリクエストを更新します。強制プッシュを実行するとプルリクエストが不可能になる場合は、GitHubがそのことを通知します。

GitHubが自動的に処理するため、プルリクエストの更新について心配する必要はありません。

とはいえ、git Push --force on anyリモートブランチcan現在このブランチで作業している同僚に騒乱を引き起こします。したがって、強制プッシュを行うことを躊躇するのは正しいですが、幸いなことに、GitHubプルリクエストは最大の問題ではありません。

14
Tim Biegeleisen

既存のプルリクエストでブランチにプッシュ更新されますプルリクエスト、コミットが行われたかどうかは関係ありませんafterプルリクエスト。

プルリクエストを変更したくない場合は、newブランチを作成して作業する必要があります。

2
Maroun

プルリクエストの内容は、プルリクエストのために送信されたブランチにあるものになります。したがって、あなたがgit Push --force、PRは、プッシュしたブランチの修正されたコミット履歴を反映します。

1
ifma

通常ので閉じたGitHub PRgit Push --forceを使用した後、今日はもう開くことができません。ボタンが無効になり、次のメッセージが表示されます。

パッチ1ブランチは、強制的にプッシュまたは再作成されました。

ただし、 isaacs/github#361 (具体的には this )ごとに、これはクローズドPRでのみ発生するようです。

1
LarsW