Hapus file yang dimodifikasi dari permintaan penarikan

103

Saya memiliki 3 file yang dimodifikasi (tidak ada file baru) dalam permintaan tarik saat ini.

Saya ingin menghapus salah satu file tersebut dari pull request, sehingga pull request hanya berisi perubahan pada dua file dan membiarkan yang ketiga dalam keadaan aslinya yang tidak tersentuh.

Saya telah mencoba beberapa hal (memeriksa versi asli file, dll ...) tetapi masih ditampilkan sebagai file yang diubah di PR.

Apakah ada solusi untuk ini?

jlee
sumber
Jika modifikasi pada file berada dalam komitnya sendiri, Anda bisa melakukan rebase interaktif dan menghapus komit yang memengaruhi file yang tidak ingin diubah, lalu melakukan dorongan paksa ke cabang Anda. Github seharusnya secara otomatis mendeteksinya.
Dentych

Jawaban:

242

Beralih ke cabang tempat Anda membuat permintaan tarik:

$ git checkout pull-request-branch

Timpa file yang dimodifikasi dengan file di cabang lain, mari kita anggap masternya :

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

Berkomitmen dan dorong ke remote:

git commit -m "Removed a modified file from pull request"
git push origin pull-request-branch
Arpit Aggarwal
sumber
4
Tidak Berfungsi menunjukkan kepada saya kesalahan: pathspec '{file / path.js}' tidak cocok dengan file apa pun yang dikenal dengan git.
raftaar1191
8
Ini berfungsi dan solusi yang terbukti cukup periksa jalur Anda dengan benar
Pavan T
2
ini berfungsi untuk file di sekitar file saya sebenarnya ingin melakukan tindakan pada ... jadi saya tidak berpikir ada yang salah dengan jalur
Tim Boland
1
@ArpitAggarwal ini berfungsi dengan baik. Terima kasih banyak.
Chaklader Asfak Arefe
1
Ini brilian. Sangat berguna sekali.
Jake
10

Anda ingin mengubah komit dan kemudian melakukan dorongan paksa yang akan memperbarui cabang dengan PR.

Inilah cara saya menyarankan Anda melakukan ini:

  1. Tutup PR sehingga siapa pun yang meninjaunya tidak menariknya sampai Anda membuat perubahan.
  2. Lakukan Soft reset untuk komit sebelum perubahan yang tidak diinginkan (jika ini adalah komit terakhir yang dapat Anda gunakan git reset --soft HEAD^ atau jika komit berbeda, Anda ingin mengganti 'HEAD ^' dengan id komit)
  3. Buang (atau batalkan) perubahan apa pun pada file yang tidak ingin Anda perbarui
  4. Buat komitmen baru git commit -a -c ORIG_HEAD
  5. Paksa Dorong ke cabang Anda
  6. Buka Kembali Permintaan Tarik

Sekarang cabang Anda telah diperbarui, Permintaan Tarik akan menyertakan perubahan Anda.

Berikut tautan ke dokumentasi Gits di mana mereka memiliki contoh yang cukup bagus di bawah Undo a commit and redo .

Keif Kraken
sumber
-5

Permintaan tarik hanya itu: permintaan untuk menggabungkan satu cabang ke cabang lain.

Permintaan tarik Anda tidak "berisi" apa pun, itu hanya penanda yang mengatakan "tolong gabungkan cabang ini ke cabang itu".

Kumpulan perubahan yang ditampilkan PR di UI web hanyalah perubahan antara cabang target dan cabang fitur Anda. Untuk mengubah permintaan tarik Anda, Anda harus memodifikasi cabang fitur Anda, mungkin dengan dorongan paksa ke cabang fitur.

Dalam kasus Anda, Anda mungkin ingin mengubah komitmen Anda. Tidak yakin tentang situasi Anda yang sebenarnya, tetapi beberapa kombinasi rebase interaktif dan add -pharus memilah Anda.

Chris Kitching
sumber