Menggunakan kembali cabang gabungan, praktik yang baik?

36

Saat ini, saya biasa membuat cabang baru setiap kali saya harus menambahkan fitur baru ke aplikasi saya.

Ketika fitur saya selesai dan fungsional, saya menggabungkannya dengan cabang master.

Tetapi kemudian, ketika saya perlu memperbarui fitur ini (seperti peningkatan) apakah lebih baik untuk membuat cabang baru atau apakah saya perlu mengubah yang sebelumnya dengan master, apakah pembaruan kemudian bergabung lagi?

Sebagai contoh, saya memiliki cabang yang disebut anggota pemodelan dalam aplikasi Ruby on Rails. Kemudian, saya perlu menambahkan beberapa atribut ke model anggota (yang dibuat di cabang ini). Apa yang harus saya lakukan? Rebase cabang ini dengan master, perbarui model dan gabungkan lagi atau cukup buat cabang baru?

gaetanm
sumber
1
Jika proyek Anda menjadi sangat besar maka menggunakan kembali cabang lama akan sangat memakan waktu bagi git untuk beralih dan / atau memperbarui. Dibandingkan dengan beberapa detik yang diperlukan untuk membuat cabang baru.
Reactgular

Jawaban:

34

Buat cabang baru, karena:

  • Cabang baru benar-benar kecil kemungkinannya memiliki konflik menggabungkan ketika Anda selesai dan ingin menggabungkannya menjadi master. Beberapa hal lebih rentan kesalahan daripada memperbaiki konflik gabungan.

  • Fitur ini mungkin telah mengalami beberapa perubahan dan pembaruan sejak penerapan aslinya, membuat cabang asli benar-benar usang. Satu-satunya cara untuk memperbaruinya adalah dengan menggabungkan master ke dalam cabang fitur ... dan pada saat itu Anda hanya melakukan percabangan master dengan cara yang rumit dan tidak perlu.

  • Jika hanya demi kesederhanaan, biasanya ide yang baik untuk memiliki alur kerja yang sama untuk pembaruan, perbaikan bug dan fitur baru. Itu berlaku untuk percabangan, ulasan kode, penggunaan pelacak bug, dan hampir semua hal lainnya. Perbedaan antara memperbarui fitur yang ada, menambahkan fitur baru, dan memperbaiki bug seringkali bersifat subjektif.

Ixrec
sumber
7

Gunakan cabang baru.

Untuk penamaan, Anda dapat mempertimbangkan menggunakan format internal bahwa this_work adalah ekstensi atau diubah ke that_work

Misalnya Anda bisa memberi nama cabang kedua

modeling-member--attributes

dengan - menandakan bahwa nama nama di sebelah kiri adalah cabang asli

Kami menangani masalah yang agak mirip karena kami menggunakan nomor tiket Jira untuk nama cabang. Terkadang ada sedikit pekerjaan tambahan untuk tiket yang sama. Terkadang perubahan basis data tidak dapat dibatalkan. Dalam kasus tersebut kami menggunakan, misalnya, cabang asli KIRIM-123 dan cabang kedua menjadi KIRIM-123a

Michael Durrant
sumber
0

Jika Anda ingin menyimpan hanya komit dari penggabungan master dan Anda menggunakan github, Anda bisa menggunakan "Fork" untuk setiap fitur baru dan melakukan permintaan tarik dan menerima permintaan tarik setelah Anda menyelesaikan semua fitur baru.

Saya tidak merekomendasikan bekerja di cabang lama, karena Anda bisa mendapatkan konflik ketika Anda menggabungkannya ke kepala master dan tentu saja itu tidak diperlukan untuk melakukannya ...

Danilo Pereira De Luca
sumber
4
"u" bukan kata bahasa Inggris. Bicara teks seperti itu harus dicadangkan untuk teks dan twitter.
Gort the Robot
@ Sebelas Sekarang, bahkan di sana, ketika untuk (kebanyakan orang) setiap huruf tidak lagi membutuhkan tiga atau empat penekanan tombol, itu harus dihindari. :)
TZHX