ดาวน์โหลดไฟล์เดียวจาก GitHub


625

ฉันเดาว่าพวกคุณส่วนใหญ่นักพัฒนาใช้VCSใด ๆและฉันหวังว่าพวกคุณบางคนใช้ Git คุณมีเคล็ดลับหรือเคล็ดลับวิธีรับ URL ดาวน์โหลดสำหรับไฟล์เดียวในที่เก็บหรือไม่?

ฉันไม่ต้องการให้ URL แสดงไฟล์ข้อมูลดิบ ในกรณีของไบนารีมันไม่มีค่าอะไรเลย

http://support.github.com/discussions/feature-requests/41-download-single-file

เป็นไปได้ไหมที่จะใช้ GitHub เป็น "เซิร์ฟเวอร์ดาวน์โหลด"

หากเราตัดสินใจที่จะเปลี่ยนเป็น Google Code ฟังก์ชั่นที่กล่าวถึงนี้มีให้ที่นี่หรือไม่?

หรือมีโฮสติ้งและ VCS ฟรีสำหรับโครงการโอเพนซอร์สหรือไม่


3
ฟีเจอร์เผยแพร่ของ GitHub ได้เข้ามาเติมบทบาทนี้แล้ว
pkamb

@RadekSimko DownGitอาจช่วยคุณได้ ดูนี้คำตอบ
Minhas Kamal

1
สำหรับ GitLab ดูstackoverflow.com/a/51993087/6309
VonC

สิ่งนี้จะไม่ทำงานสำหรับทุกคน แต่ถ้าคุณใช้ python python คุณก็สามารถทำสิ่งนี้ได้ (คลิกเพื่อดูไฟล์ขนาดใหญ่): คลิก "ดู raw" จากนั้นคัดลอก url จากเบราว์เซอร์แล้วทำสิ่งนี้: df = pd.read_csv ( ' raw.githubusercontent.com/t-davidson/ …')
Graham Hesketh

ลองGitzip หา githubสำหรับ chrome
subtleseeker

คำตอบ:


580

Git ไม่รองรับการดาวน์โหลดบางส่วนของพื้นที่เก็บข้อมูล คุณต้องดาวน์โหลดทั้งหมด แต่คุณควรทำเช่นนี้กับ GitHub

เมื่อคุณดูไฟล์มันจะมีลิงค์ไปยังเวอร์ชั่น "raw" URLที่สร้างขึ้นเช่นดังนั้น

https://raw.githubusercontent.com/user/repository/branch/filename

โดยการกรอกข้อมูลในช่องว่างใน URL คุณสามารถใช้WgetหรือcURL (พร้อม-Lตัวเลือกดูด้านล่าง) หรือดาวน์โหลดไฟล์เดียว อีกครั้งคุณจะไม่ได้รับคุณสมบัติการควบคุมเวอร์ชันที่ดีที่ Git ใช้โดยการทำเช่นนี้

อัปเดต: ฉันสังเกตเห็นว่าคุณพูดถึงสิ่งนี้ไม่ทำงานสำหรับไฟล์ไบนารี คุณอาจไม่ควรใช้ไฟล์ไบนารีในที่เก็บ Git ของคุณ แต่ GitHub มีส่วนดาวน์โหลดสำหรับแต่ละที่เก็บที่คุณสามารถใช้เพื่ออัปโหลดไฟล์ หากคุณต้องการไบนารีมากกว่าหนึ่งคุณสามารถใช้ไฟล์. zip URL สำหรับดาวน์โหลดไฟล์ที่อัพโหลดคือ:

https://github.com/downloads/user/repository/filename

หมายเหตุว่า URL ที่กำหนดข้างต้นจากการเชื่อมโยงบนจะเปลี่ยนเส้นทางไปยังgithub.com raw.githubusercontent.comคุณไม่ควรใช้ URL ที่กำหนดโดยการเปลี่ยนเส้นทาง HTTP 302 โดยตรงเนื่องจากตามRFC 2616 : "เนื่องจากการเปลี่ยนเส้นทางอาจมีการเปลี่ยนแปลงในบางโอกาสลูกค้าควรใช้การร้องขอ URI ต่อไปสำหรับการร้องขอในอนาคต"


16
หมายเหตุสำหรับลูกหลาน: ฉันเพิ่งทดสอบและใช้งานดิบสำหรับไฟล์ไบนารี
emmby

1
ลองสำหรับไฟล์ zip ขนาด ~ 10 MB มีข้อผิดพลาด: ข้อผิดพลาด: blob ใหญ่เกินไป
ina

32
รูปแบบ URL ที่แนะนำไม่ทำงานสำหรับฉัน ฉันพบว่าhttps://raw.github.com/user/repository/branch/filenameทำงาน
Brian C.

5
@BrianC .: (อย่างน้อยวันที่ 27 สิงหาคม 2013) รูปแบบ URL ที่กล่าวถึงในคำตอบ ( rawหลังจากชื่อที่เก็บข้อมูล) จะถูกเปลี่ยนเส้นทางโดยอัตโนมัติไปยังรูปแบบที่คุณพูดถึง (ชื่อโฮสต์raw.github.com) เมื่อมีข้อสงสัยให้เรียกดูไฟล์ที่เป็นปัญหาใน github.com และคลิกที่ปุ่ม 'ดิบ'
mklement0

10
หากคุณยังต้องการใช้ curl ให้ทำตามการเปลี่ยนเส้นทางโดยใช้ตัวเลือก -L ในบรรทัดคำสั่ง: curl -L -O github.com/user/repository/raw/branch/filename
Lynx-Lab

560
  1. ไปที่ไฟล์ที่คุณต้องการดาวน์โหลด
  2. คลิกเพื่อดูเนื้อหาภายใน GitHub UI
  3. ที่ด้านบนขวาคลิกขวาที่Rawปุ่ม
  4. บันทึกเป็น...

22
แทนที่จะ "บันทึกเป็น" ให้คัดลอก URL นั่นคือ URL ของไฟล์ ตอนนี้คุณสามารถดาวน์โหลดด้วยเครื่องมือใด ๆ ที่ใช้ URL ในการดาวน์โหลด: wget, เบราว์เซอร์ของคุณ ฯลฯ
jgomo3

1
@ MattParkins ฉันเพิ่งลองและฉันคิดว่ามันใช้งานได้ตอนนี้สำหรับไฟล์ขนาดใหญ่ (แม้แต่ไฟล์ไบนารีด้วย "เราไม่สามารถแสดงไฟล์ที่ใหญ่มากตอนนี้" เตือน)
lmsurprenant

3
หยุดทำตามขั้นตอนอย่างละเอียดใช้ส่วนขยายของ Chrome เพื่อทำ chrome.google.com/webstore/detail/github-mate/…
แคมเพลง

3
พระเจ้าของฉันสั้นกระชับตรงไปตรงมาตัดและแห้งง่ายต่อการอ่านและเข้าใจคำตอบที่ไม่เพียง แต่ทำให้รู้สึก แต่ทำงานได้โดยไม่จำเป็นต้องมีบุคคลภายนอก BS! หากคำตอบทั้งหมดของ StackOverflow เป็นแบบตรงไปตรงมา ขอบคุณ.
Padawan

2
สิ่งนี้ใช้ได้กับไฟล์ C # ไฟล์เดียว บางที GitHub ควรเพิ่มปุ่มอื่นสำหรับการดาวน์โหลด การคลิกขวาที่ปุ่มนั้นไม่ง่ายนัก
Nick

39

คุณสามารถใช้ V3 API เพื่อรับไฟล์ดิบเช่นนี้ (คุณต้องมีโทเค็น OAuth):

curl -H 'Authorization: token INSERTACCESSTOKENHERE' -H 'Accept: application/vnd.github.v3.raw' -O -L https://api.github.com/repos/owner/repo/contents/path

ทั้งหมดนี้ต้องผ่านไปหนึ่งบรรทัด -Oตัวเลือกที่จะบันทึกแฟ้มในไดเรกทอรีปัจจุบัน คุณสามารถใช้-o filenameเพื่อระบุชื่อไฟล์อื่น

ในการรับโทเค็น OAuth ให้ทำตามคำแนะนำที่นี่: https://help.github.com/articles/creating-an-access-token-for-command-line-use

ฉันได้เขียนสิ่งนี้ขึ้นเป็นส่วนสำคัญเช่นกัน: https://gist.github.com/madrobby/9476733


4
อันนี้ดี แต่น่าเสียดายที่รองรับไฟล์ขนาดไม่เกิน 1 MiB เท่านั้น
ต่อ Lundberg

1
หากดำเนินการภายในโปรแกรมให้แน่ใจว่าตั้งตัวแทนผู้ใช้
Zugwalt

1
คุณช่วยยกตัวอย่างเส้นทางได้ไหม หากคุณ repo เป็น my-repo และไฟล์ที่คุณต้องการรับคือที่ x / y / z.txt ดังนั้น URL จะเป็น ... มันยากที่จะเข้าใจว่าฉัน / owner / repo / ควรกรอก ขอบคุณ
สีเทา

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

34

ตามส่วนสำคัญนี้คุณสามารถใช้ wget หรือ cURL:

  1. คลิกชื่อไฟล์ใน repo GitHub
  2. คลิก Raw เพื่อแสดงเนื้อหาไฟล์
  3. คัดลอก URL ในเบราว์เซอร์ของคุณ
  4. ในบรรทัดคำสั่งให้รันอย่างใดอย่างหนึ่ง:

    • wget --no-check-certificate --content-disposition https://URL-from-step3/
    • curl -LJO https://URL-from-step3/

    อีกหนึ่ง: ใน RHEL7.6 ให้เรียกใช้สิ่งต่อไปนี้:

    • wget https://URL-from-step3/ --output-document=FILE_NAME

ฉันใช้wgetแล้วตามด้วยเส้นทางดิบไปยังไฟล์ต้นฉบับ C ที่ฉันต้องการหลังจากดูไฟล์ในที่เก็บ github และคลิกปุ่ม Raw ทำงานเหมือนแชมป์ด้วย Raspbian ใน Raspberry Pi 3 ของฉัน
Richard Chambers

ฉันมาสายไปนิดหน่อย แต่มันก็ใช้ได้ดีสำหรับฉัน การดูเนื้อหาดิบจากนั้นคลิกขวาเพื่อดาวน์โหลดไม่ทำงานกับเคสของฉันเพราะฉันต้องการไฟล์ในรูปแบบเฉพาะซึ่งคอมพิวเตอร์ของฉันไม่ได้ให้บริการ คำสั่งในคำตอบนี้จะดาวน์โหลดทุกอย่างเหมือนเดิม
Seankala

16

GitHub Mateทำให้การดาวน์โหลดไฟล์เดียวทำได้อย่างง่ายดายเพียงคลิกที่ไอคอนเพื่อดาวน์โหลดในปัจจุบันมันสามารถใช้งานได้บน Chrome เท่านั้น

ดาวน์โหลด GitHub Mate


1
@jcollum ตรวจสอบแล้วตอนนี้ทำงานให้ฉัน คุณแน่ใจหรือไม่ว่าคุณใช้รุ่นล่าสุด? หรือแจ้งให้เราทราบข้อผิดพลาด ดีใจที่คุณช่วยให้มันทำงานได้
Cam Song

2
ฉันเป็น Chrome รุ่นใหม่ล่าสุด, 34.0.1847.116 และนี่ไม่ได้ผลแน่นอน คุณใช้ระบบปฏิบัติการอะไร ฉันใช้ OS X Mavericks
Jahkobi Digital

ฉันทดสอบกับ Chrome 34 ใน Windows 7 และ OS X Mavericks ทั้งสองทำงาน ค่อนข้างแปลกถ้าไม่ทำงานใช่มั้ย โปรดทราบว่าไม่สามารถดาวน์โหลดโฟลเดอร์ได้ บางทีคุณอาจลองใช้เครื่องอื่น
Cam Song

ตกลงวิธีการนี้จะใช้ได้เฉพาะในกรณีที่คุณมีนามสกุลโครเมียม chrome.google.com/webstore/detail/github-mate/…
ทำให้เกิดความประหลาดใจเมื่อ

จากมุมมองนี้เพียงคลิกขวาและบันทึกเป็นไฟล์
Thierry Dalon

16

คุณสามารถใช้curlวิธีนี้:

curl -OL https://raw.githubusercontent.com/<username>/<repo-name>/<branch-name>/path/to/file

Oหมายความว่า curl ดาวน์โหลดเนื้อหา
Lหมายความว่า curl ติดตามการเปลี่ยนเส้นทาง


15

ตอนนี้เป็นไปได้ใน GitHub สำหรับไฟล์ใด ๆ คุณต้องแปลไฟล์ของคุณสำหรับ raw.github.com ตัวอย่างเช่นหากไฟล์ของคุณอยู่ในที่เก็บของคุณที่:

https://github.com/<username>/<repo>/some_directory/file.rb

ด้วยการใช้ wget คุณสามารถคว้าไฟล์ raw ได้จาก:

https://raw.github.com/<username>/<repo>/<branch>/some_directory/file.rb

นักแต่งเพลง Railsเป็นตัวอย่างที่ดีของเรื่องนี้


2
บางไฟล์ที่โฮสต์บน raw.githubusercontent.com
jcollum

1
และบางครั้งก็เป็น raw2.github.com เพียงแค่ fyi
jeremy.bass

11

มีนามสกุลของ Chrome ที่เรียกว่าEnhanced Github

มันจะเพิ่มปุ่มดาวน์โหลดโดยตรงที่ด้านขวาของแต่ละไฟล์

ป้อนคำอธิบายรูปภาพที่นี่


สิ่งนี้ดีกว่า Github Mate เพียงอย่างเดียวเพราะไม่ขออนุญาต "อ่านประวัติการเข้าชมทั้งหมด"! อย่าลืมคลิกขวาที่ปุ่มดาวน์โหลด> บันทึกลิงก์เป็น
Gh0sT

มีความจำเป็นต้องเพิ่มโทเค็นจากบัญชี GitHub ของคุณ
BartusZak

มีความปลอดภัยในการใช้งานหรือไม่
Arian saputra

1
@Ariansaputra ฉันใช้มันมานานแล้วไม่เคยเจอปัญหาใด ๆ เลย มันควรจะปลอดภัย ฉันไม่เห็นว่าทำไมมันจะไม่เป็น
Abraham Murciano Benzadon

@AbrahamMurcianoBenzadon ขอบคุณ
Arian saputra

10

ติดตามสิ่งที่ thomasfuchs พูด แต่สำหรับผู้ใช้ GitHub Enterprise นี่คือสิ่งที่คุณสามารถใช้ได้

curl -H 'Authorization: token INSERTACCESSTOKENHERE' -H 'Accept: application/vnd.github.v3.raw' -O -L https://your_domain/api/v3/repos/owner/repo/contents/path

นี่คือเอกสาร API ของhttps://developer.github.com/v3/repos/contents


1
คุณช่วยยกตัวอย่างเส้นทางได้ไหม หากคุณ repo เป็น my-repo และไฟล์ที่คุณต้องการคือ x / y / z.txt ดังนั้น URL จะเป็น ... ขอบคุณ
Grey

1
@Grayhttps://your_domain/api/v3/repos/{owner}/my-repo/contents/x/y/z.txt
Gregory Suvalian

ฉันต้องการดาวน์โหลดไฟล์จากสาขาหรือไม่? ฉันจะทำมันได้อย่างไร
Carlos Andres

@CarlosAndres ใช้พารามิเตอร์การอ้างอิง developer.github.com/v3/repos/contents/#parameters-1
Drew Michel

9

ในกรณีที่คุณต้องการดาวน์โหลดไฟล์ zip จากการgithubใช้งานwget

wget -O filename.zip https://github.com/downloads/user/repository/filename.zip?raw=true

ดูเว็บไซต์นี้สำหรับรายละเอียดเพิ่มเติม


คุณสามารถดาวน์โหลดไฟล์ใดก็ได้ไม่เพียงแค่. zip
enriquetaso

6

วิธีนี้ใช้ได้กับ Windows เพราะฉันไม่เคยใช้ MAC ดังนั้นฉันไม่รู้ว่าปุ่มตัวเลือกอื่นใน MAC สำหรับปุ่มที่ฉันจะพูดถึงข้างล่างนี้คืออะไร

พูดคุยเกี่ยวกับไฟล์ CSV หากคุณต้องการดาวน์โหลดไฟล์ CSV:

  1. ไปที่ชุดข้อมูลนั้นที่คุณต้องการดาวน์โหลดและคลิกที่ชุดข้อมูลนั้น
  2. คุณจะเห็นปุ่ม "ดิบ" ที่ด้านขวาบนของชุดข้อมูล
  3. กด "Alt" จากนั้นคลิกซ้ายที่ปุ่ม "Raw"
  4. CSV ทั้งหมดจะดาวน์โหลดในระบบของคุณ

จำคุณต้องกด Alt แล้วคลิกซ้ายพร้อมกัน เพียงคลิกที่ปุ่ม "ดิบ" จะเปิด CSV ในเบราว์เซอร์

ฉันหวังว่าจะช่วย


5

คุณควรทำด้วยrawURL ของไฟล์ของคุณ

ตัวอย่างเช่นการดาวน์โหลด README ของ AFNetworking:

curl https://raw.githubusercontent.com/AFNetworking/AFNetworking/master/README.md > ADREADME.md 

เนื่องจากเป็น repo สาธารณะคุณไม่จำเป็นต้องมีข้อมูลรับรองใด ๆ โปรดทราบประเภทของ URL:raw.githubusercontent.com/path/to/file


4

สรุป 2019

มีหลายวิธีในการจัดการสิ่งนี้ขึ้นอยู่กับว่าไฟล์มีขนาดใหญ่หรือไม่คุณจำเป็นต้องดาวน์โหลดโฟลเดอร์เพิ่มเติมจากไฟล์และหากคุณวางแผนที่จะทำสิ่งนี้ด้วยตนเองหรือโดยทางโปรแกรม

มีตัวเลือกหกตัวที่สรุปด้านล่าง และสำหรับผู้ที่ต้องการคำอธิบายเพิ่มเติมฉันได้รวบรวมวิดีโอ YouTube ไว้ด้วยกัน: ดาวน์โหลดไฟล์และโฟลเดอร์ส่วนบุคคลจาก GitHubGitHub

นอกจากนี้ฉันได้โพสต์คำตอบที่คล้ายกันใน StackOverflowสำหรับผู้ที่ต้องดาวน์โหลดโฟลเดอร์ / ไดเรกทอรีเดียวจาก GitHub (ตรงข้ามกับไฟล์)


1. ส่วนต่อประสานผู้ใช้ GitHub

  • มีปุ่มดาวน์โหลดในภาพส่วนใหญ่
  • มีปุ่มดาวน์โหลดที่หน้าแรกของพื้นที่เก็บข้อมูล แน่นอนว่านี่เป็นการดาวน์โหลด repo ทั้งหมดหลังจากนั้นคุณจะต้องแตกไฟล์ที่ดาวน์โหลดแล้วลากไฟล์เฉพาะที่คุณต้องการด้วยตนเอง

2. เมนูบริบทเบราว์เซอร์

  • ไปที่ไฟล์บน GitHub คลิกขวาที่ปุ่ม "ดิบ" เพื่อเปิดเมนูบริบทของเบราว์เซอร์ หากคุณใช้ Google Chrome ให้เลือก "บันทึกลิงก์เป็น ... " เบราว์เซอร์อื่นจะมี UI ที่คล้ายกัน แต่คำอธิบายการเลือกอาจแตกต่างกันไป ตัวอย่างเช่นมันจะปรากฏเป็น "ดาวน์โหลดไฟล์ที่เชื่อมโยง" และ "ดาวน์โหลดไฟล์ที่เชื่อมโยงเป็น" บน Safari

3. เครื่องมือของบุคคลที่สาม

  • มีส่วนขยายเบราว์เซอร์และเว็บแอปที่หลากหลายที่สามารถจัดการสิ่งนี้ได้ด้วยDownGitเป็นหนึ่งในนั้น เพียงวางใน GitHub URL ลงในไฟล์และกดปุ่ม "ดาวน์โหลด" โปรดทราบว่าลิงก์ควรเป็นมุมมองที่เก็บโฮสต์ GitHub.com ตรงข้ามกับลิงก์ไฟล์โดยตรง ตัวอย่างลิงค์ไฟล์: https://github.com/babel/babel-eslint/blob/master/lib/parse.js.

4. การโค่นล้ม

  • GitHub ไม่สนับสนุนการเก็บถาวร git (คุณลักษณะ git ที่จะช่วยให้เราสามารถดาวน์โหลดไฟล์เฉพาะ) อย่างไรก็ตาม GitHub สนับสนุนคุณสมบัติการโค่นล้มที่หลากหลายซึ่งหนึ่งในนั้นเราสามารถใช้เพื่อจุดประสงค์นี้ การโค่นล้มเป็นระบบควบคุมเวอร์ชัน (ทางเลือกสำหรับ git) คุณจะต้องติดตั้งการโค่นล้ม หยิบ URL GitHub สำหรับไฟล์ที่คุณต้องการดาวน์โหลด อย่างไรก็ตามคุณจะต้องแก้ไข URL นี้ คุณต้องการลิงก์ไปยังที่เก็บตามด้วยคำว่า "trunk" และลงท้ายด้วยพา ธ ไปยังไฟล์ที่ซ้อนกัน กล่าวอีกนัยหนึ่งการใช้ลิงก์ไฟล์เดียวกันกับที่ฉันกล่าวถึงข้างต้นเราจะแทนที่ "blob / master" ด้วย "trunk" สุดท้ายเปิดเทอร์มินัลนำทางไปยังไดเรกทอรีที่คุณต้องการดาวน์โหลดเนื้อหาพิมพ์คำสั่งต่อไปนี้ (แทนที่ URL ด้วย URL ที่คุณสร้างขึ้น):svn export https://github.com/babel/babel-eslint/trunk/lib/parse.js

5. ขด

  • คุณจะต้องติดตั้ง cURL ไปที่ไฟล์บน GitHub.com คลิกซ้ายที่ปุ่ม "ดิบ" เพื่อไปที่ลิงก์ไฟล์โดยตรงคัดลอก URL นี้เปิดเทอร์มินัลนำทางไปยังไดเรกทอรีที่คุณต้องการดาวน์โหลดเนื้อหาพิมพ์ลงใน คำสั่งต่อไปเปลี่ยนชื่อไฟล์ที่มีสิ่งที่คุณต้องการที่จะตั้งชื่อมันและเปลี่ยน URL curl -o parse.js https://raw.githubusercontent.com/babel/babel-eslint/master/lib/parse.jsที่มีคนที่คุณเพียงแค่คัดลอก:

6. GitHub API

  • นี่คือสิ่งที่ DownGit ใช้ภายใต้ประทุน ใช้REST API ของ GitHubทำการร้องขอ GET ไปยังจุดสิ้นสุดของเนื้อหา จุดสิ้นสุดสามารถสร้างได้ดังนี้: https://api.github.com/repos/:owner/:repo/contents/:path. https://api.github.com/repos/babel/babel-eslint/contents/lib/parse.jsหลังจากเปลี่ยนตัวยึดที่ปลายทางตัวอย่างคือ: สิ่งนี้ทำให้คุณมีข้อมูล JSON สำหรับไฟล์นั้นรวมถึง URL ดาวน์โหลด (URL ดาวน์โหลดเดียวกับที่เราใช้ในตัวอย่าง cURL ด้านบน) วิธีนี้ไม่ใช่ทั้งหมดที่มีประโยชน์สำหรับไฟล์เดียว แต่ (คุณมีแนวโน้มที่จะใช้สำหรับการดาวน์โหลดโฟลเดอร์เฉพาะตามรายละเอียดในคำตอบที่ฉันเชื่อมโยงไปด้านบน)

มันเป็นความเข้าใจของฉันว่าปุ่มดาวน์โหลดไม่ดาวน์โหลด repo ทั้งหมด ... ฉันอาจจะผิด นี่คือตัวอย่าง: github.com/googleapis/google-api-php-clientหากคุณดาวน์โหลดที่เก็บคุณจะไม่ได้รับไดเรกทอรีตัวอย่าง คุณต้องเปลี่ยนสาขาเพื่อทำสิ่งนั้น
อัลเบิร์ต

1
@albert จับได้ดี นั่นเป็นเพราะพวกเขาไม่รวมโฟลเดอร์ / ไฟล์เฉพาะในไฟล์. gitattributes: github.com/googleapis/google-api-php-client/blob/master/ …
jabacchetta

ดีขอบคุณที่แบ่งปัน! เดี๋ยว ...
อัลเบิร์ต

4

ฟีเจอร์เผยแพร่ของ GitHub

แทนที่จะลิงค์เพื่อดาวน์โหลดไฟล์เฉพาะภายใน repo คุณควรใช้ GitHub's Releaseฟีเจอร์เพื่อเชื่อมโยงข้อมูลที่ดาวน์โหลดได้ (เช่นไบนารีที่รวบรวม) กับเวอร์ชันที่ติดแท็กของซอร์สโค้ดที่ใช้ในการสร้างข้อมูลนั้น

https://github.com/blog/1547-release-your-software

เรารู้สึกตื่นเต้นที่จะประกาศการเปิดตัวเวิร์กโฟลว์สำหรับซอฟต์แวร์การจัดส่งถึงผู้ใช้ การเปิดตัวเป็นวัตถุชั้นหนึ่งที่มีการเปลี่ยนแปลงและสินทรัพย์ไบนารีที่นำเสนอประวัติโครงการแบบเต็มนอกเหนือจากสิ่งประดิษฐ์ของ Git

รีลีสจะมาพร้อมกับบันทึกย่อประจำรุ่นและลิงก์เพื่อดาวน์โหลดซอฟต์แวร์หรือซอร์สโค้ด

หลังจากการประชุมของโครงการ Git หลาย ๆ เรื่องการเผยแพร่จะเชื่อมโยงกับแท็ก Git คุณสามารถใช้แท็กที่มีอยู่หรือปล่อยให้สร้างแท็กเมื่อมันถูกเผยแพร่

ป้อนคำอธิบายรูปภาพที่นี่


1
ใช่ นี่เป็นทางออกที่ง่ายที่สุดทำได้จากเบราว์เซอร์ของคุณ! 1. จากหน้าหลักที่เก็บของคุณเลือกreleases2. คลิกที่หมายเลขการกระทำ 3. ค้นหาไฟล์ที่คุณต้องการคลิกที่จุดสามจุด...แล้วเลือกView file4. คลิกที่View rawเพื่อดาวน์โหลดไฟล์ !!!
Jonathan Benn

3

นี้จะทำงานได้อย่างแน่นอน อย่างน้อยใน Chrome คลิกขวาที่ไอคอน "ดิบ" -> Save Link As


1
สิ่งนี้จะบันทึกไฟล์ HTML ของหน้า github ซึ่งรวมถึง github wrapper รอบ ๆ ไฟล์
Gregor Thomas

@Gregor - FYI ไม่ควรอย่างน้อยก็สำหรับหน้าเว็บที่เป็น TEXT หากมีข้อสงสัยให้คลิกซ้ายที่ไอคอน "Raw" สิ่งนี้ควรเปิดไฟล์ข้อความในเบราว์เซอร์โดยไม่มี HTML ใด ๆ ตอนนี้ให้คลิกที่ใดก็ได้บนหน้าแล้วทำ "บันทึกเป็น ... " (หรือเลือกทั้งหมด / คัดลอกแล้ววางที่ใดก็ได้ที่คุณต้องการ)
ToolmakerSteve

3

ในการดาวน์โหลดไฟล์จาก repo Github ให้ใช้คำสั่ง 'curl' พร้อมลิงค์ไปยังไฟล์ raw

curl https://raw.githubusercontent.com/user/repo/filename --output filename

เพิ่มตัวเลือก - เอาท์พุทตามด้วยชื่อไฟล์ใหม่เพื่อดาวน์โหลดไฟล์ raw ไปยังไฟล์ที่สร้างขึ้นใหม่


2
  1. หน้าเว็บที่คุณเชื่อมโยงเพื่อตอบคำถามแรก

  2. GitHub ยังมีเครื่องมืออำนวยความสะดวกในการดาวน์โหลดสำหรับสิ่งต่าง ๆ เช่นรุ่น

  3. Google Codeไม่มีGitเลย

  4. GitHub, Google Code และSourceForge ที่เพิ่งเริ่มต้นนั้นเป็นโฮสติ้งฟรี SourceForge อาจยังคงทำCVS


2

ฉันเพิ่งพบบริการที่เรียกว่าgitzipและยังเป็นโอเพนซอร์ส:

เว็บไซต์ - http://kinolien.github.io/gitzip/

repo - https://github.com/KinoLien/gitzip

เยี่ยมชมเว็บไซต์ข้างต้นป้อน repo หรือ URL ไดเรกทอรีคุณสามารถดาวน์โหลดไฟล์แต่ละไฟล์หรือทั้งไดเรกทอรีเป็นไฟล์ซิป


แต่ฉันจะดาวน์โหลดjszip.min.jsจากที่เก็บเท่านั้นได้อย่างไร หน้าหมุนรอบ
เลวีฟุลเลอร์

เปิดไฟล์ใน github จากนั้นไปที่ raw คุณควรดูซอร์สโค้ดของไฟล์จากนั้นคุณสามารถดาวน์โหลดโดยใช้เบราว์เซอร์ด้วยการคลิกขวาที่เมาส์และบันทึกเป็น มันใช้งานได้สำหรับฉัน
บอริส

2

ตอนนี้เป็นไปได้ที่จะดาวน์โหลดไฟล์ใด ๆ หรือโฟลเดอร์เฉพาะภายในพื้นที่เก็บข้อมูลโดยใช้ส่วนขยายของ Google Chrome นี้:

GitZip สำหรับ github: ลิงก์: https://chrome.google.com/webstore/detail/gitzip-for-github/ffabmkklhbepgcgfonabamgnfafbdlkn

การใช้งาน:

  1. ในหน้า repos สาธารณะของ GitHub
  2. เพียงดับเบิลคลิกที่รายการที่คุณต้องการ
  3. คลิกปุ่มดาวน์โหลดที่ด้านล่างขวา
  4. ดูแผงควบคุมความคืบหน้าและรอการดาวน์โหลดทริกเกอร์ของเบราว์เซอร์
  5. รับไฟล์ ZIP

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่



1

หากคุณบังเอิญใช้ curl และ firefox ... คุณสามารถใช้cliget add-on ซึ่งสร้างการเรียก curl รวมถึงกลไกการพิสูจน์ตัวตนทั้งหมด (คุกกี้ aka)

คลิกขวาที่rawปุ่มกลุ่ม -> "คัดลอก URL สำหรับลิงค์" แล้ววางลงในเชลล์ คุณจะได้รับไฟล์ของคุณแม้ว่าคุณจะต้องลงชื่อเข้าใช้เพื่อดูมัน


0
  1. ทางด้านขวามือด้านล่าง "Clone in Desktop" มันบอกว่า "ดาวน์โหลดไฟล์ซิป"
  2. ดาวน์โหลดไฟล์ซิป
  3. แตกไฟล์

มีวิธีการทำเช่นนี้ในลักษณะที่คุณมีเนื้อหาไฟล์ lfs หรือไม่?
Owl

0

สำหรับผู้ใช้ที่มี GitHub Enterprise คุณต้องสร้าง URL ในรูปแบบดังต่อไปนี้

Invoke-WebRequest http://github.mycompany.com/api/v3/repos/my-org/my-repo/contents/myfiles/file.txt -Headers @{"Authorization"="token 8d795936d2c1b2806587719b9b6456bd16549ad8"}

รายละเอียดสามารถพบได้ที่นี่

http://artisticcheese.blogspot.com/2017/04/how-to-download-individual-files-from.html


0

หรือลองสิ่งนี้

const https = require('https');
const fs = require('fs');
const DOMAIN = 'raw.githubusercontent.com';

function writeFile(data, fileName) {
  fs.appendFile(fileName, data.toString(), err => {
    if (err) {
      console.log('error in writing file', err);
    }
  });
}

function EOF(data) {
  console.log('EOF');
}

function getFileName(pathToFile) {
  var result = pathToFile.split('/');
  var splitLength = result.length;
  return result[splitLength - 1];
}
function getFile(branchName, username, repoName, ...pathToFile) {
  pathToFile.forEach(item => {
    const path = `/${username}/${repoName}/${branchName}/${item}`;
    const URL = `${DOMAIN}${path}`;
    const options = {
      hostname: DOMAIN,
      path: path
    };
    var fileName = getFileName(item);

    https
      .get(options, function(res) {
        console.log(res.statusCode);
        /* if file not found */
        if (res.statusCode === 404) {
          console.log('FILE NOT FOUND');
        } else {
          /* if file found */
          res.on('data', data => writeFile(data, fileName));
          res.on('end', data => EOF(data));
        }
      })
      .on('error', function(res) {
        console.log('error in reading URL');
      });
  });
}
getFile('master', 'bansalAyush', 'InstagramClone', '.babelrc', 'README.md');

0

ฉันใช้รูปแบบต่อไปนี้และฉันรู้สึกว่าเป็นเรื่องสำคัญที่จะต้องแจ้งเกี่ยวกับเส้นทาง

https://github.com/user/repository/raw/branch/filename

^^^ ข้อความข้างต้นไม่สมบูรณ์ในใจ

https://github.com/<user>/<repoROOTname>/blob/master/<path>/<filename>?raw=true

บางคนบอกว่า raw.github.com หรือ raw แทนที่จะเป็น blob แต่บรรทัดที่ 2 ใช้ได้กับฉันและฉันหวังว่าจะช่วยผู้อื่น ...

2 ¢


0

คุณสามารถลองgithub-files-fetcherมันเป็นเครื่องมือบรรทัดคำสั่งที่ดาวน์โหลดโฟลเดอร์หรือไฟล์เดียวจาก GitHub repo

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

https://github.com/reduxjs/redux/tree/master/examples

ขออภัยที่ไม่ได้รับอนุญาตให้โพสต์ภาพ

ด้วย The github-files-fetcherคุณควรคัดลอกurlหน้านั้นก่อนซึ่งก็คือhttps://github.com/reduxjs/redux/tree/master/examples/asyncจากนั้นเรียกใช้คำสั่งด้านล่างในบรรทัดคำสั่ง:

fetcher --url=https://github.com/reduxjs/redux/tree/master/examples/async


-2

นี่คือสิ่งที่ใช้ได้ผลสำหรับฉันตอนนี้ ...

  1. เปิดไฟล์ raw ในแท็บแยกต่างหาก

  2. คัดลอกทุกสิ่งในสมุดบันทึกของคุณในไฟล์ใหม่

  3. บันทึกไฟล์ในส่วนขยายที่มีอยู่เดิม

ทดสอบด้วยไฟล์ php ที่ฉันดาวน์โหลดตอนนี้ (ในเวลาตอบ)

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