2008-11-05 20 views
6

Tôi có kho lưu trữ git với foo từ xa.git: cách hợp nhất các cam kết từ điều khiển từ xa sang một đường dẫn khác?

foo là một ứng dụng web, là có chứa một số tập tin và dirs trực tiếp trong thư mục gốc của nó:

Rakefile 
app 
... 
public 
script 

kho git chính của tôi là một hệ thống lớn hơn trong đó bao gồm ứng dụng web này. Tôi muốn kéo các cam kết từ foo, nhưng tôi cần các tệp để nằm trong thư mục web. Vì vậy, họ nên trở thành web/app, web/public, v.v.

Tôi không muốn sử dụng foo làm mô-đun con. Tôi muốn hợp nhất foo vào kho lưu trữ chính và sau đó loại bỏ nó.

Trả lời

2

Các nguồn tài nguyên up-to-date cho subtree sáp nhập là:

Cite từ How to use the subtree merge strategy:

Trong ví dụ này, giả sử bạn có kho tại /path/to/B (nhưng nó có thể là một địa chỉ là tốt, nếu bạn muốn). Bạn muốn kết hợp nhánh chính của kho lưu trữ đó với thư mục con dir-B trong nhánh hiện tại của bạn.

Đây là chuỗi lệnh bạn cần:

$ git remote add -f Bproject /path/to/B 
$ git merge -s ours --no-commit Bproject/master 
$ git read-tree --prefix=dir-B/ -u Bproject/master 
$ git commit -m "Merge B project as our subdirectory" 

$ git pull -s subtree Bproject master 

Xem thêm cho ý kiến ​​bài viết "Subtree merging and you".

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