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?
sumber
Jawaban:
Lihatlah Successing Git Branching Model , yang memiliki strategi percabangan yang bagus untuk pengembangan fitur di seluruh rilis.
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.
sumber
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.
sumber