จะดาวน์โหลด. zip จาก GitHub สำหรับคอมมิตเฉพาะได้อย่างไร?


106

ฉันต้องการดาวน์โหลดไฟล์. zip ด้วยแหล่งที่มาของไลบรารีที่โฮสต์บน github แต่ฉันไม่ต้องการต้นแบบเพราะทุกครั้งที่ดาวน์โหลดฉันสามารถดาวน์โหลดเวอร์ชันอื่นได้

ไลบรารีนี้ไม่มีแท็กดังนั้นฉันจึงไม่สามารถใช้สิ่งนั้นได้

ดังนั้นฉันจะดาวน์โหลด source.zip สำหรับคอมมิตเฉพาะได้อย่างไร


3
ไม่จำเป็นต้องติดแท็ก php หรือ composer-php ใช่หรือไม่?
Cacovsky

คำตอบ:


219

คุณสามารถใส่ sha ที่คุณต้องการในดาวน์โหลด url:

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

ตามกฎทั่วไปหากคุณมี url ที่ใช้งานได้คุณสามารถแทนที่ "master" ด้วย sha เฉพาะที่คุณต้องการได้

บนยูนิกซ์:

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

โปรดทราบว่าหากนี่เป็น repo ส่วนตัว wget จะไม่ทำงานเว้นแต่คุณจะส่งโทเค็น OAuth ด้วย

ข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้:

มีปัญหาในการดาวน์โหลด Git tarballs ที่เก็บถาวรจาก Private Repo


7
ไม่ได้คาดหวังวิธีการทำแบบนั้น (เจ๋ง ๆ ) กำลังคาดหวังคำสั่ง git;)
HenchHacker

ตรวจสอบลิงค์นี้ด้วย - อาจจะมองหาสิ่งนี้แทนstackoverflow.com/a/48503019/341117
Ravindra Gullapalli

คุณสามารถใช้ sha สั้น ๆ ได้เช่นกัน!
wjandrea

แม้ว่าฉันwget -Oจะใช้เพื่อเปลี่ยนชื่อไฟล์ ZIP ที่เก็บถาวร แต่เมื่อคลายซิปฉันจะได้ชื่อไดเรกทอรี SHA1 ที่น่าเกลียดขนาดใหญ่ วิธีใดที่จะหลีกเลี่ยงสิ่งนี้?
QED

40

เมื่อดูรหัสของการกระทำให้คลิกปุ่ม "เรียกดูรหัส" ที่ด้านขวาบนหลังจากนั้นคลิกที่ "ดาวน์โหลด ZIP"


1
ตอนนี้พวกเขามีปุ่ม 'โคลนหรือดาวน์โหลด' ซึ่งคุณสามารถ 'ดาวน์โหลด ZIP' ได้
SureshS

"โคลนหรือดาวน์โหลด" คือปุ่มใหม่ที่มาแทนที่ปุ่ม "โคลน" และ "ดาวน์โหลด" แบบเก่า ปุ่มใหม่ไม่ได้ทำเฉพาะบางเวอร์ชัน - ใช้วิธีที่ Zeki อธิบาย
เพื่อน

3
สิ่งนี้ใช้ได้ผลสำหรับฉันในเดือนกุมภาพันธ์ 2017 ดาวน์โหลด repo พร้อมกับการเปลี่ยนแปลงที่ประทับเวลาของคอมมิตที่เลือก
ocean4dream

8

นี่เป็นคำถามเก่า แต่อยากจะพูดถึงว่าหากคุณต้องการเพียงแค่การคอมมิตเป็นแพตช์ไม่ใช่การ repo ทั้งหมดในช่วงเวลาของการคอมมิตคุณสามารถใช้:

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

/commitและ.patchชิ้นส่วนเป็นส่วนที่สำคัญ

สิ่งนี้มีประโยชน์อย่างยิ่งหากคุณต้องการรวมเข้ากับการเปลี่ยนแปลงที่ย้อนกลับในขณะที่ย้อนกลับดังนั้นจึงไม่มีอยู่ใน repo ที่แยกออกมา

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.