Tôi hiện đang làm việc trong một dự án với một nhóm sử dụng quy trình công việc git. Nó khá đơn giản, chủ nên ở trạng thái có thể triển khai và các nhánh được sử dụng để tạo các tính năng và hotfix. Bất cứ khi nào chúng tôi có một tính năng hoặc sửa lỗi hoàn thành và được kiểm tra thì chúng tôi sẽ chuyển nó sang chủ ngay khi có thể. Ý tưởng là các nhánh nên càng nhỏ càng tốt để dễ dàng hợp nhất chúng trở lại thành chủ. Chúng tôi có một chính sách rằng bất kỳ mã nào được đẩy lên nhánh chính phải ở trạng thái có thể triển khai và vượt qua các thử nghiệm.
Chúng tôi đã có một tình huống trong đó một trong những nhà phát triển đã thực hiện rất nhiều công việc (trị giá vài tháng) trên một chi nhánh và chi nhánh này chưa được sáp nhập trở lại thành chủ. Hiện tại có một vài tính năng riêng biệt và một loạt các cam kết trên chi nhánh này, về cơ bản, chi nhánh này thực sự đã được sáp nhập trở lại trong một vài lần nhưng cho đến nay vẫn chưa có. Hầu hết các mã ở trạng thái tốt với các bài kiểm tra đơn vị có thể được hợp nhất trở lại thành chủ nhưng những thay đổi gần đây nhất chắc chắn không phải là vì chúng chưa được hoàn thành và không được kiểm tra.
Cách tốt nhất để đối phó với tình huống như vậy khi một chi nhánh thực sự cách xa các chi nhánh khác là gì? Những cách nào chúng ta có thể tránh các chi nhánh nhận được một số lượng lớn các cam kết từ chủ trong tương lai?