Lệnh git sẽ gần nhất với những gì bạn đang tìm kiếm git archive
.
Xem sao lưu dự án sử dụng git : nó sẽ bao gồm trong một kho lưu trữ tất cả các tệp (bao gồm cả các mô hình con nếu bạn đang sử dụng git-archive-all
tập lệnh)
Sau đó, bạn có thể sử dụng kho lưu trữ đó ở bất cứ đâu, chỉ cung cấp cho bạn các tệp, không có .git
thư mục.
git archive --remote=<repository URL> | tar -t
Nếu bạn cần các thư mục và tệp chỉ từ cấp độ đầu tiên:
git archive --remote=<repository URL> | tar -t --exclude="*/*"
Để chỉ liệt kê các thư mục cấp đầu tiên của một repo từ xa:
git archive --remote=<repository URL> | tar -t --exclude="*/*" | grep "/"
Lưu ý: điều đó không hoạt động đối với GitHub (không được hỗ trợ)
Vì vậy, bạn sẽ cần sao chép (nông để nhanh chóng bước nhân bản), và sau đó lưu trữ cục bộ :
git clone --depth=1 git@github.com:xxx/yyy.git
cd yyy
git archive --format=tar aTag -o aTag.tar
Một tùy chọn khác là tạo một bản sao nông (như được đề cập dưới đây), nhưng định vị thư mục .git ở nơi khác.
git --git-dir=/path/to/another/folder.git clone --depth=1 /url/to/repo
Thư mục repo sẽ chỉ bao gồm các tập tin, không có .git
.
Lưu ý: git --git-dir
là một tùy chọn của lệnhgit
, không git clone
.
Cập nhật với Git 2.14.X / 2.15 (Q4 2017): sẽ đảm bảo tránh thêm các thư mục trống .
" git archive
", đặc biệt là khi được sử dụng với pathspec, đã lưu trữ một thư mục trống trong đầu ra của nó, mặc dù chính Git không bao giờ làm như vậy.
Điều này đã được sửa chữa.
Xem cam kết 4318094 (ngày 12 tháng 9 năm 2017) của René Scharfe (``) .
Gợi ý: Jeff King ( peff
) .
(Được hợp nhất bởi Junio C Hamano - gitster
- trong cam kết 62b1cb7 , ngày 25 tháng 9 năm 2017)
archive
: không thêm các thư mục trống vào kho lưu trữ
Trong khi git không theo dõi các thư mục trống, git archive
có thể bị lừa đưa một số vào kho lưu trữ.
Mặc dù được hỗ trợ bởi cơ sở dữ liệu đối tượng, nhưng nó không thể được biểu diễn trong chỉ mục và do đó không có khả năng xảy ra trong tự nhiên.
Vì các thư mục trống không được git hỗ trợ, chúng cũng không nên được ghi vào tài liệu lưu trữ.
Nếu một thư mục trống thực sự cần thiết thì nó có thể được theo dõi và lưu trữ bằng cách đặt một .gitignore
tệp trống trong đó.