Mengkloning repo ke mesin lokal pengembang sudah semacam forking. Jika setiap pengembang membuat repo di GitHub, ini hanya berfungsi untuk mempublikasikan kondisi kerja mereka saat ini.
Ini bisa tepat ketika ada master master repo, dan banyak kontributor yang tidak dipercaya dengan akses langsung ke repo itu. Ini sangat bagus untuk proyek-proyek sumber terbuka di mana setiap orang dapat berkontribusi dan mengeluarkan permintaan tarik yang kemudian ditinjau dan digabung oleh sekelompok pengelola inti. Menggunakan beberapa repo memberlakukan alur kerja berbasis permintaan-tarik.
Dalam tim kecil yang tepercaya, ini tidak perlu. Untuk mencegah orang yang berbeda saling menghalangi, strategi seperti Git Flow dapat diikuti: Setiap fitur kecil diimplementasikan pada cabang fitur yang terpisah. Ketika fitur selesai, itu digabung ke cabang master. Sebagian besar tim akan memasangkan ini dengan permintaan tarik atau ulasan kode oleh konvensi, tetapi cukup dipercaya untuk melewati itu jika sesuai. Sementara repo yang terpisah akan menyebabkan pengembang menerbitkan keadaan mereka saat ini pada repo yang bercabang tetapi terlihat oleh tim, dalam satu repo umum mereka akan mendorong perubahan mereka ke cabang fitur yang terpisah. Melakukan semua pengembangan pada master / trunk sangat tidak dianjurkan di sebagian besar alur kerja.
Perbedaannya akhirnya semata-mata tentang manajemen akses, dan tidak begitu banyak tentang alur kerja yang diterapkan. Anda dapat melakukan alur kerja berbasis permintaan-tarik dengan salah satu pengaturan. Dari perspektif mentah Git, tidak ada banyak perbedaan antara garpu dan cabang - salah satu pendekatan pada dasarnya berbagi sejarah proyek dan memungkinkan komitmen ditambahkan tanpa mempengaruhi cabang / garpu lain. Mempertimbangkan hal ini, akan jauh lebih baik untuk membagikan satu repo ketika berada dalam grup tepercaya dan tertutup.