Sebuah proyek di GitHub yang saya punya garpu memiliki permintaan tarik baru yang ingin saya tarik ke garpu saya bahwa penulis belum menariknya.
Apakah ada cara sederhana untuk menerapkan permintaan tarik dari garpu lain ke garpu saya? Apakah ada sesuatu yang hilang di sini?
git
github
pull-request
bawang perai
sumber
sumber
Jawaban:
Anda dapat melakukannya secara manual dengan mudah:
tambahkan garpu lain sebagai remote dari repo Anda:
ambil komitmen repo-nya
Anda memiliki dua opsi untuk menerapkan permintaan tarik (jika Anda tidak ingin memilih pilih 1.)
Jika Anda tidak peduli tentang penerapan juga komitmen akhirnya yang telah ditambahkan antara asal dan permintaan tarik, Anda bisa rebase cabang di mana permintaan tarik dibentuk
Jika Anda hanya ingin komit dalam permintaan tarik, identifikasi SHA1 mereka dan lakukan
sumber
git pull URL branchname
Pembaruan: Via Webpage
Anda juga dapat melakukan ini melalui halaman web github.
Saya berasumsi, Anda seharusnya sudah memiliki fork (
MyFork
) dari repo umum (BaseRepo
) yang memiliki permintaan tarik tertunda dari fork (OtherFork
) yang Anda minati.OtherFork
) yang telah memulai permintaan tarik yang ingin Anda masuki ke fork Anda (MyFork
)OtherFork
OtherFork
cabang yang tepat juga. Pilih di sisi kiri sebagai garpu dasar garpu Anda (MyFork
) ( PENTING ).View pull request
harus berubah menjadiCreate pull request
. Klik ini.Sekarang Anda harus memiliki permintaan tarik tertunda di fork Anda (
MyFork
), yang bisa Anda terima.sumber
OtherFork
, dari dropdown 'bandingkan' sebelah kanan. Saya kemudian memilih sisi kiri sebagai garpu dasar seperti yang dijelaskan di atas karena mampu membuat permintaan tarik.Seperti yang dikatakan Tekkub sebelumnya, Anda bisa langsung menarik cabangnya. Sebagian besar waktu dengan GitHub, cabang hanyalah "master" pada garpu proyek yang diminta Pengguna.
Contoh:
git pull https://github.com/USER/PROJECT/ BRANCH
Dan sebagai contoh praktis:
Katakanlah Anda memotong proyek github yang disebut safaribooks dan ada permintaan tarik berikut, dalam proyek asal, yang ingin Anda masukkan ke garpu:
Kemudian, di folder proyek cloning fork Anda, jalankan:
sumber
git pull https://github.com/{upstream/project} refs/pull/{id}/head
saja.Permintaan tarik untuk proyek mungkin berasal dari banyak penulis (fork) yang berbeda, dan Anda mungkin tidak ingin remote yang terpisah untuk setiap fork. Selain itu, Anda tidak ingin membuat asumsi apa pun tentang cabang yang digunakan penulis saat mengajukan permintaan tarik, atau apa pun yang mungkin ada di cabang utama penulis. Jadi lebih baik untuk merujuk permintaan tarik seperti yang muncul di repositori hulu, daripada seperti yang muncul di garpu lain.
Langkah 1:
Anda mungkin sudah melakukan langkah ini, tetapi jika tidak, Anda ingin remote yang ditentukan untuk proyek hulu. URL adalah URL klon dari proyek yang Anda buat bercabang dua. Info selengkapnya di Mengkonfigurasi remote untuk garpu dan Menyinkronkan garpu .
upstream
adalah nama yang Anda berikan ke remote, dan meskipun bisa berupa apa saja,upstream
adalah nama konvensional.Langkah 2:
... di mana
{id}
nomor permintaan tarik.upstream
adalah nama remote untuk menarik, yaitu hanya "hulu" jika Anda mengikuti langkah 1 dengan tepat. Ini juga bisa berupa URL, dalam hal ini Anda dapat melewati langkah 1.Langkah 3:
Ketikkan pesan komit untuk gabungan komit. Anda dapat mempertahankan defaultnya, meskipun saya sarankan memberikan ringkasan satu baris yang bagus dengan nomor permintaan tarik, masalah yang diperbaiki, dan deskripsi singkat:
sumber
git pull upstream refs/pull/{id}/head
untuk memasukkan komit ke dalam repo lokal Anda , kemudianFETCH_HEAD
git log ..FETCH_HEAD
git merge FETCH_HEAD
Beberapa info lebih rinci yang berfungsi untuk saya.
File .git / config saya untuk repo bercabang tampak seperti ini:
Kemudian jalankan "git fetch source", yang kemudian mencantumkan semua permintaan tarik dari repo bercabang dua.
Dan kemudian untuk menggabungkan permintaan tarik tertentu jalankan "git merge master origin / pr / 67"
sumber
refs/pull/
namespace jarak jauh khusus khusus baca GitHub khusus ini (luar biasa) khusus GitHub. .smartgit.branch.otherRefs=notes;pull
ke smartgit.properties sesuai dengan syntevo.com/doc/display/SG/System+Properties - Anda juga dapat menggabungkannya dari sana .Apa yang akan saya lakukan adalah sebagai berikut;
Saya sekarang telah menggabungkan perubahan menjadi cabang uji, bernama
test_fork
. Sehingga setiap perubahan tidak akan mengotori pohon saya.Secara opsional, Anda dapat menggunakan cherry-pick seperti dijelaskan di atas untuk memilih komit tertentu jika itu lebih disukai.
Selamat jalan :)
sumber
Saya menggunakan skrip keren untuk ini. Saya menjalankan skrip dengan mengetik:
dan itu mendapatkan semua permintaan tarik dari garpu hulu.
Untuk membuat skrip buat file
~/bin/git-prfetch
.File tersebut harus berisi yang berikut:
Pastikan jalur Anda menyertakan skrip dengan menetapkan:
Anda dapat menambahkan file ini
~/.bashrc
untuk membuat perubahan itu permanen.Sekarang, pastikan Anda menambahkan garpu yang Anda inginkan untuk mendapatkan permintaan tarik dari:
Lalu
sumber