Sử dụng gitflow, khi tạo một release-1.0.0nhánh và hợp nhất nó với cả hai mastervà develop, cả hai nhánh sẽ có một cam kết bị thiếu:
mastersẽ không có cam kết nơirelease-1.0.0hợp nhất vớidevelopdevelopsẽ không có cam kết nơirelease-1.0.0hợp nhất vớimaster
Thay vào đó, sau khi hotfix-1.0.1được tạo và sáp nhập vào master, khi nó được hợp nhất develop, các cam kết hợp nhất sẽ bao gồm các cam kết trước đó release-1.0.0được sáp nhập vào master; vì vậy nó sẽ trông như thế này:
User 'john doe' is trying to merge the following commits into 'develop' from 'hotfix-1.1.1'.
* merge release-1.0.0 to master
* merge release-1.1.0 to master
* Fix shopping cart critical bug
Nếu điều này nghe có vẻ khó hiểu, bạn có thể dễ dàng nhận thấy mọi thứ bạn thấy developthường là một vài cam kết phía sau master(mặc dù về mặt lý thuyết, chỉ nên đi trước vì nó là nhánh chính. Những cam kết đó được hợp nhất từ release-x.x.xđến master).
Làm thế nào điều này nên được xử lý để duy trì một lịch sử sạch?