Git pull cabang tertentu dari GitHub
Saya memiliki sebuah proyek dengan beberapa cabang. I've telah mendorong mereka untuk GitHub, dan sekarang bahwa ada orang lain yang bekerja pada proyek saya perlu untuk menarik mereka cabang dari GitHub. Ia bekerja baik di master. Tapi mengatakan bahwa seseorang menciptakan cabang xyz
. Bagaimana bisa aku tarik cabang xyz
dari GitHub dan bergabung menjadi cabang xyz
pada saya localhost
?
Aku benar-benar memiliki jawaban saya di sini: https://stackoverflow.com/questions/1072261/push-and-pull-branches-in-git
Tapi saya mendapatkan error "! [ditolak]" dan "non-cepat maju".
Ada saran?
565
11
Yang's karena Git dapat't menggabungkan perubahan dari cabang-cabang ke master saat ini. Let's mengatakan anda'telah memeriksa cabang
master
, dan anda ingin bergabung di remote branchlainnya-cabang
. Ketika anda melakukan hal ini:Git pada dasarnya melakukan hal ini:
Artinya,
menarik
hanyamengambil
diikuti olehbergabung
. Namun, ketikamenarik
-ing, Git akan hanya menggabungkanlainnya-cabang
if dapat melakukan cepat-maju merge. A cepat-maju menggabungkan gabungan di mana kepala cabang anda mencoba untuk bergabung menjadi adalah keturunan langsung kepala cabang yang ingin anda gabungkan. Misalnya, jika anda memiliki sejarah pohon, maka penggabunganlainnya-cabang
akan mengakibatkan cepat-maju merge:Namun, ini akan not menjadi cepat-maju merge:
Untuk memecahkan masalah anda, pertama mengambil remote branch:
Kemudian bergabung ke anda saat ini cabang (I'll menganggap bahwa's
guru
), dan memperbaiki setiap gabungan konflik:Hanya melacak remote cabang secara eksplisit dan sederhana
git pull
akan melakukan apa yang anda inginkan:Yang terakhir adalah operasi lokal.
Atau bahkan lebih pas dengan GitHub dokumentasi pada forking:
Anda bisa menarik satu cabang ke cabang dengan perintah berikut.
Ketika anda berada di cabang master anda juga bisa pertama checkout cabang seperti:
Hal ini menciptakan sebuah cabang baru, "xyz", dari guru dan langsung cek it out.
Kemudian anda lakukan:
Ini menarik baru cabang lokal anda
xyz
cabang.Cara terbaik adalah:
git fetch
akan ambil terbaru daftar cabang-cabang.Sekarang anda bisa
git checkout MyNewBranch
Selesai :)
Untuk info lebih lanjut lihat dokumen: git fetch
Saya tidak yakin aku sepenuhnya memahami masalah, tapi menarik yang ada di cabang ini dilakukan seperti ini (setidaknya itu bekerja untuk saya :)
Ini adalah asumsi bahwa cabang lokal anda dibuat off dari asal/CABANG.
Ini membantu saya untuk mendapatkan branch jauh sebelum penggabungan ke lain:
Biasanya jika anda hanya memiliki repo ditugaskan untuk kode anda maka gitreponame akan asal.
Jika anda bekerja pada dua repo's seperti satu lokal dan satu lagi untuk remote seperti anda dapat memeriksa repo's daftar dari git remote -v. hal ini menunjukkan berapa banyak repo's ditugaskan untuk kode anda saat ini.
BranchName harus ada ke yang sesuai gitreponame.
anda dapat menggunakan dua perintah berikut untuk menambahkan atau menghapus repo's
Sederhananya, Jika anda ingin tarik dari GitHub cabang
the_branch_I_want
:anda juga dapat melakukan
memperbaiki gabungan konflik jika ada
-r adalah untuk rebase. Ini akan membuat anda struktur cabang dari
untuk
Hal ini akan menyebabkan debu sejarah. Catatan: jika anda telah didorong lain-cabang ke asal( atau jarak jauh lainnya), anda mungkin harus memaksa mendorong cabang setelah rebase.
Aku
Bukan
Seperti yang disarankan oleh @innaM. Ketika saya digunakan hulu versi, itu kata 'fatal: Tidak valid nama objek: 'hulu/remote_branch_name''. Aku tidak melakukan
git fetch asal
sebagai komentar yang disarankan, tapi bukan hanya digantihulu
denganasal
. Saya kira mereka setara.