Cara memodifikasi permintaan tarik Github?

163

Saya telah membuka permintaan tarik ke sebuah proyek. Pengelola telah memutuskan untuk menerimanya, tetapi mengatakan kepada saya untuk memodifikasi beberapa konten.

Bagaimana saya bisa melakukannya? Apakah saya harus menjaga agar hash komit tidak berubah, bagaimana saya bisa melakukannya?

flygoast
sumber

Jawaban:

178

cukup dorong lebih banyak komitmen ke cabang yang diminta. Permintaan tarik akan mengambil ini

Contoh:

Jika Anda ingin b bergabung menjadi master

  1. Anda mendorong c1, c2, c3 ke b
  2. maka Anda membuat permintaan baru untuk b
  3. itu ditinjau dan Anda perlu lebih banyak komitmen
  4. Anda mendorong c11, c21, c31 ke b
  5. Permintaan tarik sekarang menunjukkan keenam komit
Daij-Djan
sumber
6
Apakah mungkin untuk menambahkan komitmen pada permintaan tarik ini oleh orang lain, kecuali pembuat permintaan tarik ini?
Pencakar langit
4
setiap orang yang mendorong ke cabang tertentu
Daij-Djan
@ Daij-Djan sangat sering jika seseorang membuat Permintaan Tarik, ia mendorong ke garpu repositori miliknya sendiri. Apakah mungkin menambahkan komitmen ke PR seperti itu oleh orang-orang yang tidak memiliki akses komit ke garpunya?
Maciek Łoziński
1
@skywinder mungkin Anda bisa memeriksa pertanyaan ini: Apakah mungkin untuk mengubah kode orang lain di permintaan tarik (Github)?
Maciek Łoziński
@ MaciekŁoziński jawabannya juga hanya jika "Anda [dapat] mendorong ke cabang tertentu" :)
Daij-Djan
34

Saya hanya punya satu komit dalam permintaan tarik, dan saya biasa git commit --amendmemperbaruinya. Saya kemudian melakukan push force git push -fsehingga komit saya diubah menggantikan yang asli. Permintaan tarik secara otomatis mengambil komit baru. (Ini sebenarnya menunjukkan kedua komit, tetapi ketika saya memuat ulang halaman, komit lama telah hilang.)

Jadi, sementara dorongan paksa umumnya tidak disarankan, ini bisa berguna untuk menarik permintaan. Tidak disarankan karena jika seseorang mendasarkan komit di atas Anda maka mereka harus melakukan rebase setelah perubahan Anda. Tetapi karena tidak ada yang harus mendasarkan pekerjaan mereka pada permintaan tarik yang ditinjau, itu harus cukup aman dalam situasi ini.

Malvine
sumber
8

Jika Anda terus melakukan perubahan dan terus mendorong ke cabang yang sama, komit yang disempurnakan akan ditambahkan ke permintaan tarik yang sama (kecuali permintaan tarik Anda telah digabungkan). Ini bisa membuat sejarah sangat berantakan.

Solusi alternatif dan teknik yang saya gunakan adalah sebagai berikut:

  1. Buat cabang baru (perbaikan) dari repositori (hulu) dan cabang (kembangkan) yang ingin Anda kirim permintaan tarik dengan melakukan:

    perbaikan cabang git hulu / berkembang

  2. Tambahkan komit halus Anda langsung ke cabang yang baru dibuat ini.

    git commit -m "pesan Anda"

  3. Dorong cabang ini ke remote bercabang Anda sendiri (bisa bernama asal).

  4. Bandingkan dan kirim permintaan tarik baru dengan riwayat komit bersih.
  5. Selain itu, sebaiknya cabut cabang Anda setelah permintaan tarik digabung.
  6. Dan Anda dapat berkomentar dan menutup permintaan tarik sebelumnya.
user_19
sumber
1

Anda juga bisa menggunakan api github .

contoh dengan curl

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

Anda dapat menemukan daftar data yang terperinci di doc pengembang github

contoh: ubah nama permintaan tarik saya

curl --user "jeremyclement" \
     --request PATCH \
     --data '{"title":"allows the control of files and folders permissions."}' \
     https://api.github.com/repos/Gregwar/Cache/pulls/9
heksaJer
sumber
Saya mencoba mengubah cabang tetapi saya pikir head/labeldan head/reftidak dapat diedit.
hexaJer