Tôi muốn kết hợp một dự án hiện có (được lưu trữ trên GitHub) như một phần của dự án của tôi (vào một thư mục con) trong khi vẫn duy trì lịch sử và khả năng cập nhật dự án đó. Tôi đã phát hiện ra rằng có thể có khoảng ba phương pháp:Git/GitHub: ngã ba, kết hợp subtree hoặc submodule cho mã bên ngoài?
- Fork dự án ban đầu, di chuyển các nội dung ban đầu vào một thư mục con và đẩy nó vào repo GitHub của tôi.
- Bắt đầu một repo mới, thực hiện subtree hợp nhất với repo hiện có và đẩy tới repo GitHub của tôi.
- Sao chép kho lưu trữ hiện có, tạo một repo chính mới, đặt bản sao được sao chép vào chính làm submodule, đẩy.
Biến thể (1) có thể là một biến thể thích hợp hơn tại GitHub vì chúng có thể chia sẻ nguồn. Nhưng về mặt logic, dự án của tôi không phải là một nhánh của dự án hiện tại. Thay vào đó, cái hiện tại chỉ là một mô-đun. Ngoài ra tôi không chắc chắn nếu di chuyển các mã hiện có vào một thư mục con có thể không làm cho vấn đề. Tôi có lẽ sẽ thích (2) biến thể vì chỉ có một repo. (3) sẽ yêu cầu làm việc với một số repos nhưng hợp lý là gần nhất với tình hình của tôi.
Tôi đã nghiên cứu điều này khá một chút, nhưng tôi không chắc chắn. Bạn muốn giới thiệu gì trong tình huống này? Cảm ơn bạn trước!
Tôi không nghĩ rằng ngã ba là hoàn toàn cần thiết nếu bạn không cần phải thay đổi submodule, phải không? – iwein
@iwein: đúng, nhưng OP đã đề cập một cách rõ ràng "trong khi vẫn duy trì lịch sử và khả năng cập nhật dự án đó": tức là anh ấy cần phải cập nhật mô-đun con đó. Do đó đề xuất của tôi bao gồm một ngã ba. – VonC
Cảm ơn các gợi ý. Hãy làm rõ tình hình. Dự án khác là một dự án bên ngoài mà tôi không duy trì. Tôi chỉ sử dụng nó như là một phần của dự án của tôi, nhưng tôi muốn sửa đổi nó. Đôi khi tôi muốn cập nhật các thay đổi từ dự án bên ngoài sang phiên bản sửa đổi của nó. Ngoài ra tôi không mong đợi những thay đổi của tôi để đi đến dự án bên ngoài. Ngoài dự án bên ngoài đã sửa đổi này, tôi mong đợi sẽ có thêm một số mô-đun mà tôi sẽ tạo ra một quản lý. –