Tôi có một cây git trông giống như sau:Git rebase cam kết lựa chọn
Bởi vì công cụ rà soát chúng tôi sử dụng, chúng tôi cherry chọn thay đổi trong hơn là sáp nhập chúng. Điều này để lại cho chúng ta một số bản sao hợp lý, có nhánh mà tôi vừa xóa. Ví dụ, thay đổi một bên dưới ssl_tests "Sửa đổi: Thay đổi tên ..." cũng có thể được nhìn thấy trong dev.
Bây giờ, có lẽ đây là một sự thiếu hiểu biết về phần tôi chọn, nhưng những cam kết có băm khác nhau và do đó là cam kết khác nhau phải không? Mặc dù chúng hợp lý giống nhau.
Tuy nhiên, khi tôi đi để rebase ssl_tests lên dev, git quản lý để tìm ra rằng những người anh đào chọn cam kết là thượng nguồn và sau đó chỉ rebases "New Feature: Unit tests ..." cam kết từ ssl_tests.
Như thường lệ, với git, điều này thật tuyệt! Đây chính là điều tôi muốn! Câu hỏi của tôi mặc dù, là làm thế nào để git tìm ra rằng nó không cần phải rebase các cam kết khác nếu họ có băm khác nhau?
Cảm ơn! Stephen
Bài đăng tốt về việc kết hợp ma thuật trong Git là [Làm thế nào và/hoặc tại sao hợp nhất Git tốt hơn trong SVN?] (Http://stackoverflow.com/q/2471606/11343) – CharlesB