2013-06-27 32 views
16

Tôi đang sử dụng git-lưu trữ để lưu trữ một thư mục con trong một repo git, như vậy:git-archive một thư mục con -

git archive -o ../subarchive.zip HEAD subdir/* 

Tuy nhiên, lưu trữ kết quả duy trì cấu trúc subdir/thư mục, tức là nội dung là:

subdir/ 
    whatever.js 
    morestuff.js 

Khi tôi thực sự muốn whatever.js và morestuff.js ở gốc thư mục lưu trữ.

Bằng cách nào? Cảm ơn.

Trả lời

25

Bạn có thể làm điều đó như thế này:

git archive -o ../subarchive.zip HEAD:subdir 

Bằng cách này, một cách dễ dàng để chơi với các lệnh và xem những gì nó sẽ tạo ra là nếu bạn sử dụng nó trong hình thức này:

git archive --format=tar HEAD:subdir | tar t 
git archive --format=tar HEAD subdir | tar t 
# ... and so on ... 

Khi bạn thấy những gì bạn đang tìm kiếm, bạn có thể thay đổi định dạng và sử dụng cờ -o để thực sự tạo lưu trữ.

+0

Có cách nào để thực hiện việc này hiệu quả cho các bản repo từ xa không, ví dụ: để lấy chỉ là một dir/một phiên bản của một repo khổng lồ đó là không thực tế để sao chép? Tôi đã thử '--remote' nhưng nó rất chậm. –

+0

Nó hoạt động, tuyệt vời. Tôi đã cố gắng hiểu phần nào của tài liệu GIT đã nói về điều này, nhưng không thể. Có thể bạn xây dựng pls? – Meglio

+0

@Meglio 'git archive --help', hãy cho tôi biết nếu bạn không thể tìm thấy thứ gì đó (và sau đó hãy làm cụ thể càng tốt) – janos

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