2013-07-24 32 views
8

Tôi đang cố gắng để tạo ra một gitsubtree của một kho lưu trữ hiện có, ví dụ:Làm cách nào để tạo gitsubtree của kho lưu trữ hiện tại?

-> PROJECTA/projectB

Dự án A là phụ huynh, tôi muốn thêm dự án B như một cây con git.

git subtree -P projectB ssh: thạc sĩ //[email protected]/projectB.git

Nhưng nó không thành công, và hiển thị thông báo sau:

tiền tố 'projectB ' đã tồn tại.

Tôi không muốn tải xuống tất cả kho lưu trữ nữa, tôi chỉ muốn thêm thư mục này vào gitsubtree của tôi.

Dự án thư mục này B không được theo dõi bởi Dự án A git.

cảm ơn trước

+1

Thư mục projectB đã tồn tại chưa? Nếu có thì nó có chứa gì không? Git subtree sẽ từ chối tạo subtree nếu thư mục nơi nó sẽ được đặt chứa bất cứ điều gì cả. – LopSae

+0

Có vẻ như không thể hiện tại (git v2.0) nếu thư mục projectB đã tồn tại và loại bỏ thư mục projectB tồn tại bằng 'rm -rf projectB' rồi làm' git subtree thêm projectB_directory [email protected]/projectB.git master' để tải xuống lại là lựa chọn duy nhất. – Allen

Trả lời

4

Bạn có thể thêm projectB như một cây con của PROJECTA sử dụng vani git (bạn không cần git subtree).

cd projectA 
git remote add projectB_remote [email protected]/projectB.git 
git fetch projectB_remote 
git checkout -b projectB_branch projectB_remote/master 
git checkout master 
git read-tree --prefix=projectB/ -u projectB 

Giải thích

  1. Nhập địa phương projectA repo.
  2. Thêm điều khiển từ xa mới có tên projectB_remote với url của projectB.
  3. Tìm nạp projectB_remote mà không cần hợp nhất.
  4. Tạo và thanh toán projectB_branch; mang lại các tệp projectB_remote/master.
  5. Quay lại projectA/master.
  6. Tạo một cây con trong projectA/master có chứa thanh toán của projectB_branch.

Resultant mục Cấu trúc

projectA 
    projectB 
    other.txt 
    project.txt 
    A.txt 
    files.txt 

Xem http://www.git-scm.com/book/en/v1/Git-Tools-Subtree-Merging

0

Khi thêm một cây con, có vẻ như tiền tố (thư mục con trong đó bạn sẽ thêm cây con) không thể tồn tại.

Tôi làm việc xung quanh vấn đề này bằng cách kiểm tra một cam kết trước khi thư mục con này tồn tại, làm git subtree thêm, và sau đó hợp nhất với chi nhánh chứa nội dung thư mục con cũ của tôi.

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