プルリクエストから変更されたファイルを削除する


102

現在、プルリクエストに3つの変更されたファイル(新しいファイルはありません)があります。

プルリクエストからこれらのファイルの1つを削除して、プルリクエストに2つのファイルへの変更のみが含まれ、3番目のファイルが元の変更されていない状態のままになるようにします。

私はいくつかのことを試しました(ファイルの元のバージョンをチェックアウトするなど)が、それでもPRで変更されたファイルとして表示されます。

これに対する解決策はありますか?


ファイルへの変更が独自のコミットにある場合は、インタラクティブなリベースを実行し、変更したいファイルに影響を与えるコミットを削除してから、ブランチに強制プッシュすることができます。Githubはそれを自動的に検出するはずです。
Dentych 2016

回答:


238

プルリクエストを作成したブランチに切り替えます。

$ git checkout pull-request-branch

変更されたファイルを別のブランチのファイルで上書きし、それがマスターだと考えてみましょう:

git checkout origin/master -- src/main/java/HelloWorld.java

コミットしてリモートにプッシュします。

git commit -m "Removed a modified file from pull request"
git push origin pull-request-branch

4
動作しないというエラーが表示されます:pathspec '{file / path.js}'はgitが認識しているどのファイルとも一致しませんでした。
raftaar1191 2017年

8
それは機能しており、実証済みのソリューションです。パスを正しく確認するだけです
Pavan T

2
これは、実際にアクションを実行したいファイルの周りのファイルに対して機能します...そのため、パスに問題があるとは思わない
Tim Boland

この方法では、ファイルを上書きして、そのファイルで行われた作業を失いますよね?別のブランチやPRのために保持することはできませんか?
アーネストジョーンズ

1
@ArpitAggarwalこれは正常に動作しています。どうもありがとうございます。
Chaklader Asfak Arefe

10

コミットを修正してから、PRでブランチを更新する強制プッシュを実行する必要があります。

これを行うことをお勧めします:

  1. 変更を加えるまでPRをレビューしている人がそれを引き込まないようにPRを閉じます。
  2. 不要な変更の前にコミットをソフトリセットします(これが使用できる最後のコミットの場合、git reset --soft HEAD^またはそれが別のコミットの場合は、「HEAD ^」をコミットIDに置き換えます)
  3. 更新するつもりがなかったファイルへの変更を破棄(または元に戻す)
  4. 新しいコミットをする git commit -a -c ORIG_HEAD
  5. ブランチにプッシュを強制する
  6. プルリクエストを再度開く

ブランチが更新されたので、プルリクエストに変更が含まれます。

ここに、Gitsのドキュメントへのリンクがあります。ここでは、コミットの取り消しとやり直しの下にかなり良い例があります。


-5

プルリクエストとは、あるブランチを別のブランチにマージするリクエストです。

プルリクエストには何も「含まれていません」。これは「このブランチをそのブランチにマージしてください」というマーカーにすぎません。

PRがWeb UIに表示する一連の変更は、ターゲットブランチと機能ブランチ間の変更です。プルリクエストを変更するには、おそらく機能ブランチへの強制プッシュを使用して、機能ブランチを変更する必要があります。

あなたの場合、あなたはおそらくあなたのコミットを修正したいと思うでしょう。あなたの正確な状況についてはわかりませんが、インタラクティブなリベースのいくつかの組み合わせでadd -pあなたを整理する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.