Làm thế nào để tải xuống .zip từ GitHub cho một cam kết cụ thể?


106

Tôi muốn tải xuống tệp .zip bằng nguồn thư viện được lưu trữ trên github, nhưng tôi không muốn tệp chính vì mỗi lần tải xuống, tôi có thể tải xuống một phiên bản khác.

Thư viện cụ thể này không có thẻ, vì vậy tôi không thể sử dụng nó.

Vậy làm cách nào để tải xuống source.zip cho một cam kết cụ thể?


3
Điều này không cần phải được gắn thẻ với php hoặc composer-php, phải không?
Cacovsky

Câu trả lời:


218

Bạn có thể đặt sha mà bạn muốn trong url tải xuống:

https://github.com/{username}/{projectname}/archive/{sha}.zip

Theo nguyên tắc chung, nếu bạn có một url hoạt động, bạn có thể thay thế "master" bằng sha cụ thể mà bạn muốn.

Trên unix:

wget https://github.com/{username}/{projectname}/archive/{sha}.zip

Hãy nhớ rằng nếu đây là repo riêng tư thì wget sẽ không hoạt động trừ khi bạn chuyển mã thông báo OAuth.

Đây là thông tin thêm về điều đó:

Gặp sự cố khi tải xuống tarball lưu trữ Git từ Repo Riêng tư


7
Tôi không mong đợi cách làm (hay) đó. Được mong đợi lệnh git;)
HenchHacker

Kiểm tra liên kết này cũng - Có thể được tìm kiếm thay vì này stackoverflow.com/a/48503019/341117
Ravindra Gullapalli

Bạn có thể sử dụng sha ngắn quá!
wjandrea,

Ngay cả khi tôi sử dụng wget -Ođể đổi tên tệp ZIP lưu trữ, khi giải nén, tôi vẫn nhận được tên thư mục SHA1 xấu xí. Có cách nào để tránh điều này không?
QED

40

Khi xem mã của cam kết, hãy nhấp vào nút "Duyệt mã" ở phía trên bên phải, sau đó nhấp vào "Tải xuống ZIP".


1
Họ có nút 'Sao chép hoặc Tải xuống', nơi bạn có thể 'Tải xuống ZIP'.
SureshS

"Sao chép hoặc Tải xuống" là nút mới thay thế các nút "Sao chép" và "Tải xuống" cũ. Nút mới không thực hiện các phiên bản cụ thể - hãy sử dụng cách Zeki đã mô tả
bạn bè

3
Điều này đã làm việc cho tôi vào tháng 2 năm 2017. Nó đã tải xuống repo với các thay đổi ở dấu thời gian của cam kết đã chọn.
ocean4dream 17/02/17

7

Đây là một câu hỏi cũ, nhưng muốn đề cập rằng nếu bạn chỉ muốn cam kết như một bản vá chứ không phải toàn bộ repo tại thời điểm cam kết, bạn có thể sử dụng:

$ wget http://github.com/username/repo/commit/sha1.patch
#                        ^^^^^^^^ ^^^^        ^^^^
#                        change   change      change

Các /commit.patchphụ tùng là một phần quan trọng.

Điều này đặc biệt hữu ích nếu bạn muốn hợp nhất trong một thay đổi đã được đảo ngược một thời gian trước đó và do đó không tồn tại trong repo được phân nhánh.

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.