Saat ini saya bekerja untuk perusahaan yang menggunakan VSTS untuk mengelola kode git. Cara "direkomendasikan" Microsoft untuk menggabungkan cabang adalah dengan melakukan "penggabungan squash", yang berarti bahwa semua komit untuk cabang tersebut tergencet menjadi satu komit baru yang menggabungkan semua perubahan.
Masalahnya adalah, bagaimana jika saya melakukan beberapa perubahan di satu cabang untuk satu item jaminan simpanan, maka segera ingin mulai melakukan perubahan di cabang lain untuk jaminan simpanan lain, dan perubahan itu tergantung pada set perubahan cabang pertama?
Saya bisa membuat cabang untuk item backlog itu dan mendasarkannya pada cabang pertama. Sejauh ini baik. Namun, ketika tiba saatnya untuk membuat permintaan tarikan untuk saya cabang kedua, cabang pertama telah digabung menjadi master dan karena itu telah dilakukan sebagai penggabungan squash, git menggerakkan sekelompok konflik. Ini karena git tidak melihat commit asli yang menjadi dasar dari cabang kedua, ia hanya melihat satu squash besar bergabung dan jadi untuk menggabungkan cabang kedua menjadi master, ia mencoba untuk memutar ulang semua komitmen cabang pertama di atas penggabungan squash, menyebabkan banyak konflik.
Jadi pertanyaan saya adalah, apakah ada cara untuk mengatasi ini (selain tidak pernah mendasarkan satu cabang fitur dari yang lain, yang membatasi alur kerja saya) atau apakah penggabungan squash hanya mematahkan algoritma git?
feature1
ke master, lalu ingin bergabungfeature2
nanti. Dalam hal itu, bukankah pendekatan pertama akan menghasilkan konflik ketika git mencoba untuk menerapkan kembalifeature1
komit di atas komit terjepit, sedangkan yang kedua akan memungkinkan git untuk menentukan bahwa komit tersebut tidak perlu digabung?