Giả sử hai kho git với một số tác phẩm trong đó:Tôi có thể thực hiện hợp nhất subtree từ thư mục con không?
ProjectA
+ a
+ b
ProjectB
+ foo/x
+ foo/y
+ bar/z
Bây giờ tôi muốn bao gồm các thư mục foo
từ ProjectB vào PROJECTA.
Theo như tôi hiểu khi tôi làm git subtree add
các prefix
là con đường mà nó nên có trong kho tiếp nhận, vì vậy khi tôi làm
git subtree add --prefix=project_b --squash URL_of_ProjectB
tôi sẽ kết thúc với
ProjectA
+ a
+ b
+ project_b
+ foo/x
+ foo/y
+ bar/z
Tôi có thể bằng cách nào đó specifiy rằng tôi chỉ muốn foo
lấy để có được bố trí này?
ProjectA
+ a
+ b
+ project_b
+ x
+ y
Điều này có thay đổi quá trình sáp nhập trong các thay đổi tiếp theo trong ProjectB vào ProjectA không? Tôi nghĩ kịch bản của tôi là chính xác những gì 'git subtree' là cho, nhưng nếu nó không, những gì * có thể * được thực hiện với nó? Có lẽ tôi có thể thay đổi bố cục tệp của mình để phù hợp hơn. – AndreKR
Có, bạn phải làm lại bước bộ lọc mỗi lần bạn muốn hợp nhất các thay đổi từ ProjectB vào ProjectA. Trang man 'git subtree' giải thích lệnh' git split' tương tự như lệnh 'filter-branch' mà tôi đã cung cấp. Nhưng nếu bạn có thể thay đổi bố trí của bạn có lẽ nó tốt hơn để trích xuất các conntent của 'foo' vào một kho riêng biệt và thêm nó như là một subtree cho cả hai dự án. Có lẽ điều này là tốt hơn vì 'b' là một số loại lib? – gregor
Đó là vấn đề, nó không thực sự. Nếu có, tôi sẽ biến nó thành một mô-đun con. Đó là một số mã được chia sẻ giữa hai dự án ... một danh sách các quốc gia, một số mẫu, v.v. – AndreKR