Giả sử tôi là duy trì một repo, và tôi muốn kéo những thay đổi từ một người đóng góp, có một vài công việc có thể:Git Cherry-pick vs Merge Workflow
- tôi
cherry-pick
từng cam kết từ xa (theo thứ tự). Trong trường hợp này git ghi lại cam kết không liên quan đến nhánh từ xa. - I
merge
nhánh, kéo tất cả thay đổi và thêm cam kết "xung đột" mới (nếu cần). - I
merge
mỗi cam kết từ nhánh từ xa riêng rẽ (theo thứ tự), cho phép xung đột được ghi lại cho mỗi lần commit, thay vì được nhóm lại với nhau thành một. - Để hoàn tất, bạn có thể thực hiện
rebase
(giống như tùy chọncherry-pick
?), Tuy nhiên, sự hiểu biết của tôi là điều này có thể gây nhầm lẫn cho người đóng góp. Có lẽ đó là loại bỏ tùy chọn 1.
Trong cả hai trường hợp 2 và 3, git ghi lại lịch sử chi nhánh của các cam kết, không giống như 1.
là gì của pro và con của giữa việc sử dụng một trong hai cherry-pick
hoặc merge
phương pháp mô tả ? Sự hiểu biết của tôi là phương pháp 2 là tiêu chuẩn, nhưng tôi cảm thấy rằng việc giải quyết một cam kết lớn với một "xung đột" hợp nhất, không phải là giải pháp sạch nhất.
Thực ra, về lý thuyết có khả năng Mallory có thể làm hỏng kho lưu trữ của bạn bằng cách tạo các cam kết có cùng SHA1 nhưng nội dung khác nhau, nó có thể sẽ không bao giờ xảy ra trong thực tế. :) – Bombe
Ha :) Tôi có nghĩa là "trong lý thuyết tỷ lệ cược rất thấp mà bạn có thể dựa vào nó không xảy ra", nhưng bạn là đúng rằng nó đọc topsy-turvy. – quark
Bạn nghĩ gì về "hợp nhất - yêu cầu"? – cmcginty