web-dev-qa-db-ja.com

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

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

これらのファイルの1つをプルリクエストから削除して、プルリクエストに2つのファイルへの変更のみを含め、3つ目のファイルを元のそのままの状態のままにしておきたいと思います。

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

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

59
jlee

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

$ git checkout pull-request-branch

変更されたファイルを別のブランチのファイルで上書きします。それがmasterであると考えてみましょう。

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
142
Arpit

コミットを修正した後、PRでブランチを更新するプッシュを強制的に実行します。

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

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

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

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

7
Keif Kraken

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

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

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

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

0
Chris Kitching