Alur kerja Git untuk banyak tim

12

Kita akan mulai menggunakan Git (belum menggunakannya), dan saya ingin mendefinisikan alur kerja.

Kami memiliki 4 tim di 4 lokasi global berbeda, mengembangkan bersama produk yang sama. Setiap tim memiliki bagian dari kode produk, tetapi kadang-kadang mereka juga harus membuat perubahan dalam kode yang dimiliki oleh tim lain.

Apakah ada rekomendasi untuk alur kerja Git untuk lingkungan seperti itu?

Saya sudah melihat artikel ini , tetapi pendekatan di sini adalah "kami membuat cabang tambahan sesering mungkin", dan saya lebih percaya pada pendekatan "cabang untuk setiap cerita pengguna".

Juga, artikel ini menyajikan pendekatan yang bagus.

Saya berpikir memiliki cabang utama, cabang permanen per setiap tim yang secara berkala digabungkan untuk dikuasai, dan cabang per-pengguna-cerita bergabung ke cabang tim. Apakah ini masuk akal, atau tidak akan berhasil?

Igor Oks
sumber
2
Kami menggunakan model percabangan ini , tetapi saya pikir jika Anda membaca "cabang fitur" sebagai "cabang cerita", itu cocok sekali dengan artikel kedua Anda.
2
Saya yakin 10 orang dapat merespons kembali ini dengan 10 tanggapan berbeda. Inilah yang bekerja untuk saya: Kami memiliki satu master repo yang di-host di github yang menunjukkan rilis 'saat ini'. Rilis yang lebih lama bercabang (meskipun pemberian tag juga berfungsi). Anggota tim didorong untuk membuat cabang untuk tugas yang sedang mereka kerjakan. Ketika selesai, mereka membuat permintaan tarikan untuk dikuasai (atau ke mana pun ia perlu bergabung) dan kemudian orang lain meninjau permintaan tarikan dan bertanggung jawab untuk menggabungkannya menjadi master. Mereka juga bertanggung jawab untuk membereskan cabang setelah digabungkan.
2
Anda mungkin tertarik pada submodul untuk memisahkan basis kode tim yang berbeda. Mereka kemudian dapat saling memotong basis kode satu sama lain dan mengirim tambalan saat mengedit bagian kode yang lain.
Fred Foo
@ larsmans & carbonbasednerd - Komentar Anda seharusnya adalah jawaban, mereka akan mendapat suara dari saya. * 8 ')
Mark Booth

Jawaban:

8

Lihatlah Successing Git Branching Model , yang memiliki strategi percabangan yang bagus untuk pengembangan fitur di seluruh rilis.

Model percabangan git yang berhasil

Anda bisa mengimplementasikan sesuatu yang serupa dengan satu tingkat ekstra untuk cabang tim antara cabang 'mengembangkan' dan 'cabang fitur'. Memiliki cabang tim juga akan memungkinkan dua tim untuk berkolaborasi secara lebih efektif dengan menggabungkan antar cabang tim mereka.

Nick Haddad
sumber
0

Saya akan mengatakan bahwa masing-masing tim memiliki versi repositori sendiri, dengan satu repositori global tempat semua orang berkomitmen (seperti dalam kernel Linux, di mana repositori Linus adalah kernel dan repositori pusat).

Kemudian untuk mempertahankan kode produk, Anda dapat menggunakan submodul seperti kata @ larsmans, maka setiap tim hanya dapat bekerja terutama pada bagian yang paling penting bagi mereka dan jika mereka perlu bekerja dengan bagian lain, mereka dapat melakukannya, tetapi mereka harus ingat untuk memperbarui submodule, dan di sinilah masalahnya (karena sangat mudah untuk mendapatkan kesalahan ketika menggunakan git, untungnya juga mudah untuk menjauh dari mereka).

Tetapi karena tim Anda terbiasa dengan hal ini, dan menyadari bahwa mereka mengubah kode tim lain, lebih mudah bagi mereka untuk mengingat untuk melakukan pembaruan submodule, sebelum mengubah modul asing.

Coyote21
sumber