Xem xét kho lưu trữ Một kho lưu trữ github được quản lý qua Gerrit. Tôi nhân bản kho lưu trữ A và tạo một nhánh mới bắt đầu từ nhánh master của kho A. Tôi đã đẩy nhánh mới này vào kho lưu trữ gitlab mới B. Tôi là admin trên kho B và tôi chia sẻ nó với các nhà phát triển khác. Các nhà phát triển không thể thúc đẩy nhánh này, nhưng tôi có thể hợp nhất các yêu cầu kéo của họ. Tôi đã hợp nhất một số yêu cầu kéo trên nhánh chính của kho B. Vì vậy, kho B có các cam kết ban đầu của kho A và các cam kết mới của yêu cầu kéo: B cam kết trên đầu A cam kết (b a).Cập nhật kho lưu trữ dùng chung git
Sau đó, tôi muốn cập nhật kho B với các cam kết mới của kho lưu trữ A. Gọi các cam kết này là +.
tôi thấy hai lựa chọn:
- Nếu tôi kết hợp A vào B, kết quả là: a + b a.
- Nếu tôi rebase B trên A +, kết quả là: b a + a.
Tùy chọn 1: cam kết phát triển được trộn lẫn với các cam kết bên ngoài. Khó gỡ lỗi và làm nổi bật sự khác biệt.
Tùy chọn 2: Tôi phải đẩy các thay đổi trên điều khiển từ xa B. Hậu quả, nếu tôi không nhầm, có thể là: 1. nếu nhà phát triển kéo B và họ đã cam kết với chủ B địa phương, họ sẽ mất các thay đổi cục bộ của họ; 2. nhà phát triển có thể gặp phải những rắc rối lớn trong quá trình khởi động lại chi nhánh địa phương của họ sau khi cập nhật bắt buộc của chi nhánh B.
Tôi nên tiến hành như thế nào để tránh mọi sự cố?