Saya ingin tahu perbedaan antara melakukan Fork proyek dan melakukan cloneitu.
Bisakah saya mengirim permintaan tarik melalui GitHub jika saya telah melakukan forked proyek?
Saya ingin tahu perbedaan antara melakukan Fork proyek dan melakukan cloneitu.
Bisakah saya mengirim permintaan tarik melalui GitHub jika saya telah melakukan forked proyek?
Jawaban:
Pada dasarnya ya. A forkhanyalah permintaan bagi GitHub untuk mengkloning proyek dan mendaftarkannya di bawah nama pengguna Anda ; GitHub juga melacak hubungan antara dua repositori, sehingga Anda dapat memvisualisasikan komitmen dan menarik antara dua proyek (dan garpu lainnya).
Anda masih dapat meminta orang menarik dari repositori Anda yang dikloning, bahkan jika Anda tidak menggunakan fork- tetapi Anda harus berurusan dengan membuatnya tersedia untuk umum sendiri. Atau kirim tambalan pengembang (lihat git format-patch) yang dapat diterapkan ke pohon mereka.
git pull. Garpu mengambil banyak perintah. Dan tidak mengejutkan, hampir setiap garpu yang saya lihat sudah ketinggalan zaman. Garpu seperti masalah repositori Maven pada steroid. Alih-alih satu repo usang (Maven), ada ribuan dari mereka (Git).
git pullsehingga masih ada semacam hubungan yang ada. Jika Anda mengkloning seluruh salinannya, itu berada di komputer lokal Anda dan terputus dari repo yang asli.
Ketika Anda mengatakan Anda fork repositori Anda pada dasarnya menciptakan salinan repositori di bawah GitHub ID Anda. Poin utama yang perlu diperhatikan di sini adalah bahwa setiap perubahan yang dilakukan pada repositori asli akan dipantulkan kembali ke repositori bercabang Anda (Anda perlu mengambil dan membuat ulang). Namun, jika Anda membuat perubahan pada repositori bercabang Anda, Anda harus secara eksplisit membuat permintaan tarikan ke repositori asli . Jika permintaan tarik Anda disetujui oleh administrator dari repositori asli , maka perubahan Anda akan dilakukan / digabungkan dengan basis kode asli yang ada . Sampai saat itu, perubahan Anda hanya akan tercermin dalam salinan yang Anda bercabang dua .
Pendeknya:
Fork & Pull Model memungkinkan siapa pun untuk melakukan repositori yang ada dan mendorong perubahan ke garpu pribadi mereka tanpa memerlukan akses diberikan ke repositori sumber. Perubahan kemudian harus ditarik ke dalam repositori sumber oleh pengelola proyek.
Perhatikan bahwa setelah forking Anda dapat mengkloning repositori Anda (yang di bawah nama Anda) secara lokal di mesin Anda. Buat perubahan di dalamnya dan dorong ke repositori bercabang Anda. Namun, untuk mencerminkan perubahan Anda di repositori asli, permintaan tarik Anda harus disetujui.
Beberapa diskusi menarik lainnya -
Apakah garpu git sebenarnya adalah klon git?
Bagaimana cara saya memperbarui repositori bercabang GitHub?
Anda dapat melakukan pada repo online Anda (atau melakukan pada repo lokal Anda dan kemudian mendorong ke repo online Anda), kemudian mengirim permintaan tarik.
Manajer proyek dapat menerimanya untuk mendapatkan perubahan Anda dalam versi online utamanya.
Klon adalah tempat Anda memiliki duplikasi yang tepat, dan pemisahan di antara, dua (mungkin berbeda) versi repositori. Ketika satu repo diubah, konten baru harus disalin secara aktif ke repo lainnya menggunakan perintah push. Dan perubahan dalam repo lainnya diambil.
Saat Anda melakukan repo, di server, tidak perlu duplikasi konten karena kedua repo akan menggunakan konten [objek tetap] yang sama dari server yang sama. Triknya adalah dalam mengelola sudut pandang pengguna yang berbeda sehingga setiap pengguna percaya bahwa mereka memiliki salinan pribadi lengkap dari repo tersebut. Mendorong dan mengambil di antara garpu hanya memperbarui petunjuk pengguna.
Pada level yang lebih rendah, git melakukan hal yang sama secara internal. Jika Anda memiliki tiga file berbeda, masing-masing berisiHello World , maka cukup git 'garpu' salinan tunggal gumpalan Hello World dan menawarkannya di masing-masing dari tiga tempat yang diperlukan.
Kemampuan untuk bercabang di server berarti bahwa tunjangan penyimpanan besar Github tidak rata-rata besar karena setiap orang berbagi satu repo yang mendasarinya.
Singkatnya, Forking mungkin sama dengan "kloning di bawah ID / profil GitHub Anda". Garpu kapan saja lebih baik daripada tiruan, dengan beberapa pengecualian, jelas. Repositori bercabang selalu dipantau / dibandingkan dengan repositori asli tidak seperti repositori yang dikloning. Itu memungkinkan Anda untuk melacak perubahan, memulai permintaan tarik, dan juga secara manual menyinkronkan perubahan yang dibuat dalam repositori asli dengan yang bercabang dua.
Sedangkan jawaban @ AniketThakur sangat bagus. Belum ada yang menjawab pertanyaan berikut.
Bisakah saya mengirim permintaan tarik melalui GitHub jika saya telah melakukan forked proyek?
Tidak. Jika Anda adalah kontributor repositori, Anda dapat: Membuat klon lokal. Buat cabang lokal. Tambahkan komit ke cabang itu. Dorong cabang lokal kembali ke github (membuat cabang jarak jauh dalam proses). Buat permintaan tarik yang meminta cabang itu digabungkan ke cabang master (atau cabang apa pun yang Anda suka).
Jika Anda melakukan apa yang diisyaratkan oleh si penanya (lupa garpu dan baru saja mengkloning repo, buat perubahan dan sekarang perlu mengeluarkan permintaan tarik) Anda bisa kembali ke jalur:
Perbedaan halus aneh lainnya pada GitHub adalah bahwa perubahan pada garpu tidak dihitung dalam log aktivitas Anda sampai perubahan Anda ditarik ke dalam repo asli. Terlebih lagi, untuk mengubah garpu menjadi klon yang tepat, Anda harus menghubungi dukungan Github, rupanya.
Dari Mengapa kontribusi saya tidak muncul :
Komit dibuat dalam garpu
Komitmen yang dibuat dalam garpu tidak akan dihitung terhadap kontribusi Anda. Untuk menghitungnya, Anda harus melakukan salah satu dari yang berikut:
Buka permintaan tarik agar perubahan Anda digabungkan ke dalam repositori induk. Untuk melepaskan garpu dan mengubahnya menjadi repositori mandiri di GitHub, hubungi Dukungan GitHub . Jika garpu memiliki garpu sendiri, beri tahu jika garpu harus pindah dengan repositori Anda ke jaringan baru atau tetap di jaringan saat ini. Untuk informasi lebih lanjut, lihat " Tentang garpu ."