Saya punya proyek yang di-host di GitHub yang telah dicabuti seseorang. Di cabang mereka, mereka telah membuat cabang baru "foo" dan membuat beberapa perubahan. Bagaimana cara menarik "foo" mereka ke cabang baru yang juga bernama "foo" di repo saya?
Saya mengerti mereka bisa mengirimkan permintaan tarik kepada saya, tetapi saya ingin memulai proses ini sendiri.
Asumsikan yang berikut:
- Karena mereka bercabang proyek saya, kedua repo kami berbagi 'sejarah' yang sama
- Meskipun GitHub menunjukkan proyek mereka diambil dari tambang, repositori lokal saya tidak memiliki referensi ke proyek orang ini. Apakah saya perlu menambahkannya sebagai remote?
- Saya belum memiliki cabang bernama "foo" - Saya tidak tahu apakah saya harus membuat ini secara manual terlebih dahulu.
- Saya pasti ingin ini ditarik ke cabang terpisah dan bukan tuan saya.
sumber
git://
URL dari halaman repositori GitHub orang lain sebagai gantinya//path/to/coworkers/repo.git
. (Menjelaskan bahwa itulah yang membuat jawaban saya terlalu lambat;))Tidak, Anda tidak perlu menambahkannya sebagai remote. Itu akan merepotkan dan menyusahkan setiap kali melakukannya.
Meraih komitmen mereka:
Ini menciptakan cabang lokal bernama
ournameforbranch
yang persis sama dengan apatheirbranch
yang mereka miliki. Sebagai contoh pertanyaan, argumen terakhir adalahfoo:foo
.Catatan
:ournameforbranch
bagian dapat lebih jauh ditinggalkan jika memikirkan nama yang tidak bertentangan dengan salah satu cabang Anda sendiri merepotkan. Dalam hal itu, referensi yang disebutFETCH_HEAD
tersedia. Anda dapatgit log FETCH_HEAD
melihat komit mereka kemudian melakukan hal-hal seperticherry-picked
ceri memilih komitmen mereka.Mendorongnya kembali kepada mereka:
Seringkali, Anda ingin memperbaiki sesuatu milik mereka dan mendorongnya kembali. Itu mungkin juga:
Jika bekerja dalam keadaan terpisah membuat Anda khawatir, berarti membuat cabang menggunakan
:ournameforbranch
dan menggantiFETCH_HEAD
dan diHEAD
atas denganournameforbranch
.sumber
master
cabang default )git branch -m newbranch
sementara dalam keadaan terpisah ini, git akan kehilangan akal dan mulai mengatakan repo Anda tidak valid lagi.git init
tampaknya untuk memperbaikinya dan mengembalikan Anda ke kondisi sebelumnya, dengan cabang bernama "newbranch".Jika jawaban antak:
Memberi anda:
Kemudian (mengikuti saran Przemek D) gunakan
sumber
Berikut ini adalah solusi bijaksana yang bagus yang bekerja dengan GitHub untuk memeriksa cabang PR dari garpu pengguna lain. Anda perlu mengetahui ID permintaan tarik (yang ditampilkan GitHub bersama dengan judul PR).
Contoh:
Memperbaiki kode tidak aman Anda # 8
alice ingin menggabungkan 1 commit
your_repo:master
dariher_repo:branch
Gantikan remote Anda jika berbeda dengan
origin
.Pengganti
8
dengan ID permintaan tarik yang benar.sumber
GitHub memiliki opsi baru relatif terhadap jawaban sebelumnya, cukup salin / tempelkan baris perintah dari PR:
Merge
atauSquash and merge
view command line instructions
sumber
Jika repo bercabang dilindungi sehingga Anda tidak dapat mendorong langsung ke dalamnya, dan tujuan Anda adalah untuk membuat perubahan pada foo mereka, maka Anda perlu memasukkan foo cabang mereka ke dalam repo Anda seperti:
Sekarang Anda memiliki salinan foo lokal tanpa hulu yang terkait dengannya. Anda dapat melakukan perubahan padanya (atau tidak) dan kemudian mendorong foo Anda ke repo jarak jauh Anda sendiri.
Sekarang foo ada di repo Anda di GitHub dan foo lokal Anda melacaknya. Jika mereka terus melakukan perubahan pada foo, Anda dapat mengambilnya dan bergabung dengan foo Anda.
sumber