Cách tải xuống repo GitHub dưới dạng .zip bằng dòng lệnh


9

Tôi đang cố tải xuống tệp .zip từ GitHub bằng dòng lệnh trong Ubuntu. Tôi đang sử dụng wgetlệnh cho nó trên một hệ thống Ubuntu từ xa.

Tôi chạy wget <link>ở đâu <link>là liên kết thanh địa chỉ của tệp mà tôi muốn tải xuống. Nó kết thúc với archive.zip?ref=master.

Bây giờ, khi tôi đang thực thi lệnh, nó đang tải xuống một tệp có text/htmlloại chứ không phải .ziptệp mà tôi muốn.

Xin vui lòng cho tôi biết làm thế nào để có được liên kết được đưa ra như là tham số của wget. Ngay bây giờ, tôi chỉ sao chép địa chỉ liên kết của nút (sử dụng nhấp chuột phải) và viết đó là một wgettham số.


bạn có thể nói chính xác lệnh bạn đang dán không?
kashish

1
URL của bạn có thực sự kết thúc bằng .zip không?
kashish

@kashish Không có URL nào không kết thúc bằng .zip. Tôi đang cố tải xuống một dự án từ github và nó có nút tải xuống cho zip và các tùy chọn khác. Vì vậy, tôi đang cố gắng từ đó. nó kết thúc với archive.zip?ref=master
UbuntuCoder

Để tải xuống một dự án github, bạn có thể sử dụnggit clone <projectlink.git>
kashish

1
Nếu tôi không nhầm, có thể tải xuống kho lưu trữ dưới dạng tệp Zip bằng địa chỉ sau:https://github.com/{user}/{repo}/archive/{branch}.zip
Alex Chermenin

Câu trả lời:


11

Từ những bình luận tôi thấy bạn thực sự nói về GitHub.

Nó sẽ không hoạt động như thế này vì:

Tải xuống một dự án trên GitHub khiến máy chủ GitHub trước tiên đóng gói dự án của bạn dưới dạng zip và hơn là chuyển tiếp bạn đến một liên kết tạm thời nơi bạn nhận được zip của mình ..

liên kết này sẽ chỉ hoạt động trong một thời gian nhất định và hơn GitHub sẽ xóa tệp zip của bạn khỏi máy chủ của họ ..

Vì vậy, những gì bạn nhận được với wget chỉ là trang html sẽ chuyển tiếp cho bạn ngay khi tệp zip của bạn được tạo.

Theo đề nghị sử dụng

git clone http://github.com/<yourRepoLink> <optional local path where to store>

để tải xuống git repo ... Nếu vì một lý do nào đó (ví dụ như để chuyển nó cho người khác), bạn cần nó một cách rõ ràng dưới dạng zip, bạn vẫn có thể đóng gói nó sau khi nhân bản xong.


2
Sau khi nhân bản, hãy làm git archive -o output.zip, nếu vẫn cần một tệp zip
Ferrybig

git clonehoạt động, một cách tự nhiên, nhưng có những trường hợp không hợp lý khi cài đặt git chỉ để tải xuống repo.
Robin Métral

0

Nó hoạt động, nếu bạn sử dụng URL chính xác. Đối với repo GitHub, có một zip tại https://github.com/user/repo/archive/master.zip, vì vậy bạn có thể tải xuống bằng:

wget https://github.com/user/repo/archive/master.zip

Điều này tải về masterchi nhánh của user/repo. Bạn có thể thay thế master bằng bất kỳ nhánh nào khác hoặc hàm băm cam kết.

Điều này tương tự với việc sử dụng cURL với:

curl -L https://github.com/user/repo/archive/master.zip

-LCờ của cURL theo các chuyển hướng - đó là mặc định trong wget.

Lưu ý rằng bạn cũng có thể tải xuống một tarball với:

wget https://github.com/user/repo/archive/master.tar.gz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.