Saya kira sebagian besar dari Anda, pengembang, menggunakan VCS apa pun , dan saya harap beberapa dari Anda menggunakan Git. Apakah Anda memiliki tip atau trik bagaimana cara mendapatkan URL unduhan untuk satu file dalam repositori?
Saya tidak ingin URL untuk menampilkan file mentah; dalam kasus binari itu tidak ada artinya.
http://support.github.com/discussions/feature-requests/41-download-single-file
Apakah mungkin menggunakan GitHub sebagai "server unduh"?
Jika kami memutuskan untuk beralih ke Google Code, apakah fungsi yang disebutkan itu disajikan di sini?
Atau adakah hosting dan VCS gratis untuk proyek sumber terbuka?
git
version-control
github
Radek Simko
sumber
sumber
Jawaban:
Git tidak mendukung pengunduhan bagian repositori. Anda harus mengunduh semuanya. Tetapi Anda harus bisa melakukan ini dengan GitHub.
Ketika Anda melihat file itu memiliki tautan ke versi "mentah". The URL dibangun seperti begitu
Dengan mengisi bagian yang kosong di URL, Anda dapat menggunakan Wget atau cURL (dengan
-L
opsi, lihat di bawah) atau apa pun untuk mengunduh satu file. Sekali lagi, Anda tidak akan mendapatkan salah satu fitur kontrol versi bagus yang digunakan oleh Git dengan melakukan ini.Pembaruan: Saya perhatikan Anda menyebutkan ini tidak berfungsi untuk file biner. Anda mungkin tidak boleh menggunakan file biner di repositori Git Anda, tetapi GitHub memiliki bagian unduhan untuk setiap repositori yang dapat Anda gunakan untuk mengunggah file. Jika Anda membutuhkan lebih dari satu biner, Anda dapat menggunakan file .zip. URL untuk mengunduh file yang diunggah adalah:
Perhatikan bahwa URL yang diberikan di atas, mulai dari tautan aktif
github.com
, akan dialihkan keraw.githubusercontent.com
. Anda tidak boleh langsung menggunakan URL yang diberikan oleh pengalihan HTTP 302 ini karena, per RFC 2616 : "Karena pengalihan mungkin kadang-kadang diubah, klien HARUS terus menggunakan URI-Permintaan untuk permintaan di masa mendatang."sumber
raw
setelah nama repositori) sekarang secara otomatis dialihkan ke format yang Anda sebutkan (nama hostraw.github.com
). Jika ragu, telusuri file yang dimaksud di github.com dan klik tombol 'Raw'.Raw
tombol.sumber
Anda dapat menggunakan API V3 untuk mendapatkan file mentah seperti ini (Anda memerlukan token OAuth):
curl -H 'Authorization: token INSERTACCESSTOKENHERE' -H 'Accept: application/vnd.github.v3.raw' -O -L https://api.github.com/repos/owner/repo/contents/path
Semua ini harus berjalan dalam satu baris. The
-O
pilihan menyimpan file dalam direktori saat ini. Anda dapat menggunakan-o filename
untuk menentukan nama file yang berbeda.Untuk mendapatkan token OAuth ikuti instruksi di sini: https://help.github.com/articles/creating-an-access-token-for-command-line-use
Saya telah menulis ini sebagai intis juga: https://gist.github.com/madrobby/9476733
sumber
Menurut intisari ini , Anda dapat menggunakan wget atau cURL:
Di baris perintah, jalankan:
wget --no-check-certificate --content-disposition https://URL-from-step3/
curl -LJO https://URL-from-step3/
Satu lagi: di RHEL7.6, jalankan yang berikut:
wget https://URL-from-step3/ --output-document=FILE_NAME
sumber
wget
diikuti oleh jalur mentah ke file sumber C yang saya inginkan setelah melihat file di repositori github dan mengklik tombol Raw. Bekerja seperti seorang juara dengan Raspbian di Raspberry Pi 3.GitHub Mate membuat pengunduhan file tunggal menjadi mudah, cukup klik ikon untuk mengunduh, saat ini hanya berfungsi di Chrome.
sumber
Anda bisa menggunakan
curl
cara ini:curl -OL https://raw.githubusercontent.com/<username>/<repo-name>/<branch-name>/path/to/file
O
berarti curl mengunduh kontenL
berarti curl mengikuti arahan ulangsumber
Ini sekarang dimungkinkan di GitHub untuk file apa pun. Anda perlu menerjemahkan file Anda ke raw.github.com. Misalnya, jika file Anda ada di repositori Anda di:
Menggunakan wget Anda dapat mengambil file mentah dari:
Rails Composer adalah contoh yang bagus untuk ini.
sumber
Ada ekstensi chrome yang disebut Enhanced Github
Ini akan menambahkan tombol unduh langsung ke kanan setiap file.
sumber
Untuk menindaklanjuti apa yang dikatakan thomasfuchs tetapi sebagai gantinya untuk pengguna GitHub Enterprise inilah yang dapat Anda gunakan.
curl -H 'Authorization: token INSERTACCESSTOKENHERE' -H 'Accept: application/vnd.github.v3.raw' -O -L https://your_domain/api/v3/repos/owner/repo/contents/path
Juga inilah dokumentasi API https://developer.github.com/v3/repos/contents
sumber
https://your_domain/api/v3/repos/{owner}/my-repo/contents/x/y/z.txt
Jika Anda ingin mengunduh file zip
github
menggunakanwget
lihat situs web ini untuk lebih jelasnya
sumber
Metode ini berfungsi untuk Windows karena saya belum pernah menggunakan MAC jadi saya tidak tahu apa kunci alternatif di MAC untuk kunci yang akan saya sebutkan di bawah ini.
Mari kita bicara tentang file CSV. JIKA Anda ingin mengunduh file CSV:
Ingat, Anda harus menekan Alt dan klik kiri secara bersamaan. Cukup mengklik tombol "Raw" akan membuka CSV di browser.
Saya harap itu membantu.
sumber
Anda harus melakukannya dengan
raw
URL file Anda.Misalnya untuk mengunduh README dari AFNetworking:
Karena ini adalah repo publik, Anda tidak perlu kredensial. Harap perhatikan jenis url:
raw.githubusercontent.com/path/to/file
sumber
Ringkasan 2019
Ada berbagai cara untuk menangani ini, tergantung pada seberapa besar file tersebut, apakah Anda perlu mengunduh folder di samping file, dan apakah Anda berencana untuk melakukan ini secara manual atau terprogram.
Ada enam opsi yang dirangkum di bawah ini. Dan bagi mereka yang lebih menyukai penjelasan langsung, saya telah membuat video YouTube: Unduh File dan Folder Individual dari GitHub .
Juga, saya telah memposting jawaban yang serupa pada StackOverflow untuk mereka yang perlu mengunduh folder / direktori tunggal dari GitHub (sebagai lawan dari file).
1. Antarmuka Pengguna GitHub
2. Menu Konteks Browser
3. Alat Pihak Ketiga
https://github.com/babel/babel-eslint/blob/master/lib/parse.js
.4. Subversi
svn export https://github.com/babel/babel-eslint/trunk/lib/parse.js
5. CURL
curl -o parse.js https://raw.githubusercontent.com/babel/babel-eslint/master/lib/parse.js
.6. API GitHub
https://api.github.com/repos/:owner/:repo/contents/:path
. Setelah mengganti placeholder, contoh endpoint adalah:https://api.github.com/repos/babel/babel-eslint/contents/lib/parse.js
. Ini memberi Anda data JSON untuk file itu, termasuk URL unduhan (URL unduhan yang sama yang kami gunakan dalam contoh CURL di atas). Metode ini tidak terlalu berguna untuk satu file, (Anda akan lebih cenderung menggunakannya untuk mengunduh folder tertentu, seperti yang dijelaskan dalam jawaban yang saya tautkan di atas).sumber
Fitur Rilis GitHub
Daripada menautkan untuk mengunduh file tertentu dalam repo, Anda harus menggunakan fitur Rilis GitHub untuk mengaitkan data yang dapat diunduh (seperti binari yang dikompilasi) dengan versi tag kode sumber yang digunakan untuk menghasilkan data tersebut.
https://github.com/blog/1547-release-your-software
sumber
releases
2. Klik pada nomor komit. 3. Temukan file yang Anda inginkan, klik pada tiga titik...
dan pilihView file
4. KlikView raw
untuk mengunduh file !!!Ini pasti akan berhasil. Paling tidak di Chrome. Klik kanan pada ikon "Raw" -> Save Link As .
sumber
Untuk mengunduh file dari repo Github, gunakan perintah 'curl' dengan tautan ke file mentah.
Tambahkan opsi --output diikuti oleh nama file baru untuk mengunduh file mentah ke file yang baru dibuat.
sumber
Halaman yang Anda tautkan untuk menjawab pertanyaan pertama.
GitHub juga memiliki fasilitas pengunduhan untuk hal-hal seperti rilis.
Google Code tidak memiliki Git sama sekali.
GitHub, Google Code dan SourceForge , hanya untuk memulai, adalah hosting gratis. SourceForge mungkin masih melakukan CVS .
sumber
Saya baru-baru ini menemukan layanan yang dipanggil
gitzip
dan juga open source:situs - http://kinolien.github.io/gitzip/
repo - https://github.com/KinoLien/gitzip
Kunjungi situs di atas, masukkan URL repo atau direktori, Anda dapat mengunduh file individual atau seluruh direktori sebagai file zip.
sumber
jszip.min.js
dari repositori itu? wajah trollSekarang mungkin untuk mengunduh file atau folder tertentu dalam repositori menggunakan ekstensi google chrome ini:
GitZip untuk github: tautan: https://chrome.google.com/webstore/detail/gitzip-for-github/ffabmkklhbepgcgfonabamgnfafbdlkn
Penggunaan:
sumber
Saya pikir
url
struktur baru adalahraw.giturl
sebagai contoh:file git
mentah
sumber
Jika Anda kebetulan menggunakan curl dan firefox ... Anda bisa menggunakan add-on cliget yang menghasilkan panggilan curl termasuk semua mekanisme otentikasi (alias cookies).
Jadi klik kanan pada
raw
kliget tombol -> "salin url untuk tautan" dan kemudian rekatkan ke shell. Anda akan mendapatkan file Anda bahkan jika Anda harus masuk untuk melihatnya.sumber
sumber
Untuk pengguna dengan GitHub Enterprise Anda perlu membuat URL dalam skema berikut
Invoke-WebRequest http://github.mycompany.com/api/v3/repos/my-org/my-repo/contents/myfiles/file.txt -Headers @{"Authorization"="token 8d795936d2c1b2806587719b9b6456bd16549ad8"}
Detailnya dapat ditemukan disini
http://artisticcheese.blogspot.com/2017/04/how-to-download-individual-files-from.html
sumber
Atau coba ini
sumber
Saya menggunakan format berikut, dan saya merasa penting untuk memberi tahu tentang path.
^^^ hal di atas tidak terlalu lengkap dalam pikiranku
beberapa mengatakan raw.github.com atau raw bukannya blob, tetapi baris ke-2 bekerja untuk saya dan saya harap akan membantu orang lain ...
2 ¢
sumber
Anda dapat mencoba github-files-fetcher , ini adalah alat baris perintah yang mengunduh satu folder atau file dari repo GitHub.
Pikirkan skenario nyata: Anda mengunjungi halaman web berikut dan ingin mengunduh
async
subdirektori sendirian.https://github.com/reduxjs/redux/tree/master/examples
Dengan The
github-files-fetcher
, Anda harus terlebih dahulu menyalinurl
halaman itu, yaitu https://github.com/reduxjs/redux/tree/master/examples/async , dan kemudian jalankan perintah di bawah ini di baris perintah:fetcher --url=https://github.com/reduxjs/redux/tree/master/examples/async
sumber
Inilah yang bekerja untuk saya sekarang ...
Buka file mentah di tab terpisah.
Salin semuanya di notepad Anda di file baru.
Simpan file dalam ekstensi yang awalnya
diuji dengan file php yang saya unduh tadi (pada saat jawaban)
sumber