Saya ingin memeriksa permintaan tarik yang dibuat sebelumnya (dibuat melalui antarmuka web GitHub). Saya mencari dan menemukan tempat yang berbeda di mana ref / pull atau ref / pull / pr
Tetapi ketika saya menambah fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
file konfigurasi git dan melakukan git fetch
Apa yang saya lakukan salah? Haruskah GitHub membuat barang tarikan / xyz secara otomatis, atau apakah saya harus mengkonfigurasi sesuatu?
git
github
pull-request
git-checkout
GarfieldKlon
sumber
sumber
Jawaban:
Untuk mengambil PR jarak jauh ke repo lokal Anda,
di mana
ID
id permintaan tarik danBRANCHNAME
adalah nama cabang baru yang ingin Anda buat. Setelah Anda membuat cabang, maka cukupLihat dokumentasi resmi GitHub untuk informasi lebih lanjut.
sumber
git fetch origin pull/1/head:githubusername
, bukan apa yang saya harapkanBRANCHNAME
adalah apa pun yang Anda ingin beri nama cabang. Saya kira Anda mencoba menggunakan nama yang sudah ada (mis.master
) Dan itu tidak berhasil, jadi Anda mencoba nama pengguna Anda, yang berhasil, karena mereka bukan cabang dengan nama itu. Mungkin saya salah mengerti apa yang Anda katakan.origin
menunjuk ke garpu danupstream
- ke repositori asli (mengikuti help.github.com/articles/configuring-a-remote-for-a-fork , misalnya). Pastikan untuk mengubahorigin
keupstream
dalam perintah yang disebutkan, jika Anda ingin mengambil permintaan tarik dari repo asli.Ini akan diambil tanpa Anda harus memberi nama cabang:
Bagaimana cara saya mendapatkan permintaan tarikan khusus pada mesin saya?
sumber
Intisari itu menggambarkan apa yang terjadi ketika Anda mengambil git:
Anda memiliki berbagai skrip yang tercantum dalam masalah 259 untuk mengotomatiskan tugas itu.
Proyek git-extras mengusulkan perintah
git-pr
(diimplementasikan pada PR 262) )git-pr
(1) - Lihat permintaan tarik secara lokalsumber
Saya lebih suka mengambil dan checkout tanpa membuat cabang lokal dan berada dalam keadaan terpisah KEPALA . Ini memungkinkan saya untuk dengan cepat memeriksa permintaan tarik tanpa mencemari mesin lokal saya dengan cabang lokal yang tidak perlu.
git fetch upstream pull/ID/head && git checkout FETCH_HEAD
di mana
ID
ID permintaan tarik dan diupstream
mana permintaan tarik asli telah dibuat (bisa jadi ituorigin
, misalnya).Saya harap ini membantu.
sumber
Merujuk jawaban Steven Penny, yang terbaik adalah membuat cabang tes dan menguji PR. Jadi inilah yang akan Anda lakukan.
git checkout -b test
git pull origin pull/939/head:test
Sekarang, Anda dapat dengan aman menguji perubahan pada cabang uji lokal ini (dalam hal ini, tes bernama ) dan setelah Anda puas, dapat menggabungkannya seperti biasa dari GitHub.
sumber
test
cabang baru dan MAKA menarik PR - dengan cara itu saya tidak perlu memulihkan cabang secara lokal ketika selesai; Saya hanya membuang meja kerja. Bahkan saya TIDAK PERNAHcheckout -b
lagi - saya selalu membuat worktree dan kemudian cabang. Disk itu murah. Tentu saja, saya memiliki skrip yang melakukan ini; Saya tidak mengetik semua perintah yang diperlukan secara individual.Jika Anda menggunakan Github.com, buka "Tarik permintaan", klik pada permintaan tarik yang relevan, lalu klik tautan "instruksi baris perintah":
sumber
Anda dapat menggunakan
git config
perintah untuk menulis aturan baru.git/config
untuk mengambil permintaan tarik dari repositori:Dan kemudian:
sumber
Masalah dengan beberapa opsi di atas, adalah bahwa jika seseorang mendorong lebih banyak komitmen ke PR setelah membuka PR, mereka tidak akan memberi Anda versi terbaru. Bagi saya yang paling berhasil adalah - buka PR, dan tekan 'Komit', gulir ke bawah untuk melihat hash komit terbaru dan kemudian cukup gunakan git checkout, yaitu
git checkout <commit number>
dalam contoh di atas
git checkout 0ba1a50
sumber
git fetch origin pull/ID/head:BRANCHNAME
pendekatan yang disebutkan di stackoverflow.com/a/30584951/659732 . Terima kasih atas solusinya!Saya menggunakan hub, alat dari github: https://github.com/github/hub
Dengan hub memeriksa permintaan tarik secara lokal agak mudah:
sumber
Untuk Bitbucket, Anda perlu mengganti kata
pull
menjadipull-requests
.Pertama, Anda dapat mengonfirmasi gaya tarik URL permintaan dengan
git ls-remote origin
perintah.Seperti yang Anda lihat, itu
refs/pull-requests/1503/from
bukanrefs/pull/1503/from
Kemudian Anda dapat menggunakan perintah dari salah satu jawaban.
sumber
Saya akhirnya menulis hampir sama dengan yang disediakan oleh git-extras. Jadi jika Anda lebih suka satu perintah khusus daripada menginstal banyak perintah tambahan lainnya, cukup tempatkan file ini
git-pr
di suatu tempat di Anda$PATH
dan kemudian Anda bisa menulis:sumber
Jika Anda mengikuti alur kerja "github fork", tempat Anda membuat fork dan menambahkan repo hulu jarak jauh:
untuk menarik ke cabang Anda saat ini perintah Anda akan terlihat seperti:
untuk menarik ke cabang baru kode akan terlihat seperti:
sumber
Github baru-baru ini merilis utilitas cli bernama github-cli . Setelah menginstalnya, Anda dapat checkout cabang permintaan tarik secara lokal dengan menggunakan id
misalnya:
gh pr checkout 2267
Perhatikan bahwa paket ini masih dalam versi beta
sumber
Dapatkan cabang PR jarak jauh ke cabang lokal:
git fetch origin ‘remote_branch’:‘local_branch_name’
Atur hulu dari cabang lokal ke cabang jarak jauh.
git branch --set-upstream-to=origin/PR_Branch_Name local_branch
Saat Anda ingin mendorong perubahan lokal ke cabang PR lagi
git push origin HEAD:remote_PR_Branch_name
sumber
Misalkan asal Anda dan info hulu seperti di bawah ini
dan nama cabang Anda seperti
kemudian
akan melakukan pekerjaan
sumber
Jika komit mereka ada di sana cabang master repo bercabang mereka, maka Anda bisa melakukan hal berikut.
sumber