Giả sử tôi là người duy trì repo và tôi muốn thay đổi từ một người đóng góp, có một vài quy trình công việc có thể xảy ra:
- 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 các cam kết là không liên quan đến nhánh từ xa. - Tôi
merge
là chi nhánh, kéo theo tất cả các thay đổi và thêm một cam kết "xung đột" mới (nếu cần). - Tôi
merge
từng cam kết từ chi nhánh từ xa riêng lẻ (một lần nữa theo thứ tự), cho phép ghi lại xung đột cho từng cam kết, thay vì nhóm tất cả lại thành một. - Để hoàn thiện, bạn có thể thực hiện
rebase
(giống nhưcherry-pick
tùy chọn?), 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ẽ điều đó 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 xác nhận, không giống như 1.
Sự ủng hộ và lừa đảo giữa việc sử dụng một trong hai cherry-pick
hoặc merge
các phương pháp được mô tả là gì? Sự hiểu biết của tôi là phương pháp 2 là chuẩn mực, 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 sự hợp nhất "xung đột", không phải là giải pháp sạch nhất.