Saya sangat baru di GIT / GitHub (seperti baru mulai kemarin). Saya ingin tahu apa cara terbaik untuk mengelola banyak orang yang bekerja pada proyek yang sama dengan Github. Saat ini saya sedang mengelola satu proyek dengan empat pengembang.
Bagaimana cara saya tentang alur kerja dan memastikan semuanya sinkron?
(Catatan: Semua pengembang akan memiliki satu akun universal.)
Apakah setiap pengembang harus berada di cabang yang berbeda?
Apakah saya dapat menangani 2 orang yang bekerja pada file yang sama?
Silakan kirim jawaban terperinci, saya bukan pembaca yang pemalu. Saya perlu memahami ini dengan baik.
Jawaban:
Jika semua pengembang memiliki akses komit ke repo, Anda tidak perlu melakukan sesuatu yang istimewa. Mereka akan menarik perubahan dari repo, membuat perubahan sendiri, melakukan secara lokal, dan kemudian mendorong kembali ke repo publik ketika mereka memiliki sesuatu yang berfungsi.
Jika di sisi lain Anda memiliki satu (atau beberapa) pengembang yang bertanggung jawab untuk melakukan repo, dan yang lain menyediakan tambalan untuk ini. Mintalah masing-masing dari mereka mengkloning repo ke dalam akun mereka sendiri dan minta mereka mengirim permintaan tarik ketika mereka memiliki perubahan yang mereka inginkan ke dalam repo utama.
Dimungkinkan juga untuk membuat klon khusus untuk mengerjakan fitur tertentu jika diinginkan. Menggunakan alur kerja yang sama dengan tarik-permintaan untuk mendapatkan perubahan ke repo utama ketika fitur selesai.
Jika dengan "Semua pengembang akan memiliki satu akun universal" Anda berarti bahwa semua pengembang akan berbagi satu akun GitHub dan muncul sebagai committer yang sama dalam repo, itu ide yang buruk. Buat akun terpisah dan setel sebagai kolaborator jika Anda ingin semuanya memiliki akses komit.
Adapun pertanyaan spesifik Anda:
Tidak, gunakan cabang untuk fitur, perbaikan dll yang akan membutuhkan lebih dari satu komit. Lebih dari satu pengembang dapat bekerja di cabang yang sama.
Ya, git menangani konflik dengan sangat baik, jadi tidak ada masalah ketika orang bekerja pada file yang sama. Tidak ada masalah kecuali, resolusi konflik tidak selalu sepele jika ada perubahan mendasar pada file yang telah diedit oleh lebih dari satu anggota. Namun ini tidak ada yang tidak bisa diatasi dengan berbicara bersama. Kontrol versi tidak menggantikan komunikasi.
Semoga berhasil!
sumber
git fetch upstream
diikuti olehgit merge upstream/branch
akan membuat Anda disinkronkan tanpa menulis ulang riwayat komit lokal Anda. Jika itu bukan masalah, cukup dengangit pull --rebase
memindahkan perubahan Anda yang belum dicopot ke bagian atas cabang hulu.Kami bekerja dengan 2 pengembang dan kami menggunakan alur kerja ini:
sumber
Saya hanya melihat jawaban teks di sini, jadi saya pikir saya akan memposting gambar gitflow yang bagus untuk memulai. Gambar menggambarkan lebih dari seribu kata:
sumber
Saya bekerja dengan 3 pengembang lain, dan kami berjuang dengan ini sedikit. Pengembang terkadang akan mendorong komit ke dalam produksi yang benar-benar belum siap untuk prime-time karena mereka akan menarik komit lain ke dalam perubahan mereka dan kemudian mendorong ke dalam produksi. Cabang versi tampaknya berfungsi baik untuk kita. Jadi, jika versi 1.0 adalah versi stabil saat ini, kami akan membuat cabang untuk pengembangan v1.1. Pengembang akan membuat perubahan di cabang ini. Server pengujian kami memeriksa cabang ini dan melakukan perubahan seperlunya. Ketika semua fitur untuk v1.1 siap digunakan dan pengujian selesai, kami akan menggabungkan v1.1 dengan master dan push. Dengan cabang, tim pengembang A dapat bekerja pada v1.1 dan tim pengembang B dapat bekerja v1.2. Kedua tim dapat bekerja tanpa saling mempengaruhi. Jika tim A mengembangkan sesuatu yang B dapat digunakan,
Kami juga menggunakan cabang perbaikan terbaru yang digunakan untuk perubahan langsung.
Berikut ini tautan ke gambar seperti apa ini. http://nvie.com/img/[email protected]
sumber