2011-12-14 38 views
8

giả sử tôi có một kho lưu trữ từ xa ([email protected]:project.git) với cấu trúc sau:thêm một kho lưu trữ địa phương như một thư mục con của kho lưu trữ từ xa

./client 
./server 

Và sau đó tôi đã tạo ra một kho lưu trữ địa phương trong thư mục ~/myproject/test sử dụng git init; git add . ; git commit -m "init check in ". Tôi muốn đẩy kho địa phương này đến kho lưu trữ từ xa như một thư mục con test song song với clientserver, đó là

./client 
./server 
./test 

Tôi muốn tất cả các check-in lịch sử trong địa phương có thể được lưu giữ trong kho từ xa . Có bất kì cách nào để đạt được điều này không? Cảm ơn!

Trả lời

6

Giải pháp thông thường là sử dụng subtree merge strategy.

Xem "Git subtree merge strategy, possible without merging history?" để biết chi tiết.


Một giải pháp khác sẽ là khai báo repo địa phương của bạn dưới dạng mô đun con của repo từ xa.

Đối với điều đó, bạn sẽ cần:

Nhưng nếu các tệp thử nghiệm của bạn được liên kết chặt chẽ với dự án của bạn, đó có lẽ không phải là giải pháp tốt nhất.

1

Câu trả lời trước không phù hợp với tôi (cần thêm chi tiết: Git người mới bắt đầu ở đây ;-), trong khi https://git-scm.com/book/en/v2/Git-Tools-Submodules đã làm nó hoàn hảo với phương pháp từng bước một. Nó cũng giải thích cả hai phương pháp để hợp nhất/loại bỏ lịch sử.

+0

Liên kết bị hỏng kể từ 2016.03.27. – adam0404

+0

Liên kết là OK kể từ 2017.08.24. – Erathiel

Các vấn đề liên quan