Скачать отдельные файлы с GitHub - PullRequest
514 голосов
/ 05 января 2011

Я думаю, большинство из вас, разработчики, используют любые VCS , и я надеюсь, что некоторые из вас используют Git. У вас есть совет или хитрость, как получить URL для загрузки одного файла в хранилище?

Мне не нужен URL для отображения необработанного файла; в случае двоичных файлов это даром.

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

Можно ли даже использовать GitHub в качестве "сервера загрузки"?

Если мы решим перейти на Google Code, будут ли здесь упомянуты упомянутые функции?

Или есть бесплатный хостинг и VCS для проектов с открытым исходным кодом?

Ответы [ 26 ]

497 голосов
/ 05 января 2011

Git не поддерживает загрузку частей репозитория.Вы должны загрузить все это.Но вы должны быть в состоянии сделать это с GitHub.

Когда вы просматриваете файл, он имеет ссылку на «сырую» версию. 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 : «Поскольку перенаправление может иногда изменяться, клиент ДОЛЖЕН продолжать использовать Request-URI для будущих запросов».

473 голосов
/ 28 ноября 2012
  1. Перейдите к файлу, который вы хотите загрузить.
  2. Нажмите его, чтобы просмотреть содержимое в пользовательском интерфейсе GitHub.
  3. В правом верхнем углу, щелкните правой кнопкой мыши кнопка Raw.
  4. Сохранить как ...
36 голосов
/ 11 марта 2014

Вы можете использовать API V3 для получения необработанного файла, подобного этому (вам понадобится токен 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

18 голосов
/ 04 августа 2017

Согласно этой сущности , вы можете использовать wget или cURL:

  1. Щелкните по имени файла в репозитории GitHub.
  2. Нажмите Raw, чтобы отобразить файл содержание.
  3. Скопируйте URL в ваш браузер.
  4. В командной строке запустите:
    • wget --no-check-certificate --content-disposition https://URL-from-step3/
    • curl -LJO https://URL-from-step3/
15 голосов
/ 17 декабря 2013

GitHub Mate позволяет загружать один файл без особых усилий, просто нажмите значок, чтобы загрузить, в настоящее время он работает только в Chrome.

GitHub Mate Download

12 голосов
/ 10 августа 2013

Теперь это возможно в GitHub для любого файла.Вам нужно перевести свои файлы на raw.github.com.Например, если ваш файл находится в вашем хранилище по адресу:

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

С помощью wget вы можете получить сырой файл из:

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

Rails Composer отличный пример этого.

10 голосов
/ 14 апреля 2018

Вы можете использовать curl следующим образом:

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

O означает, что curl загружает содержимое
L означает, что curl следует за перенаправлением

10 голосов
/ 09 октября 2014

Чтобы узнать, что сказал 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

8 голосов
/ 07 июля 2015

Если вы хотите загрузить zip-файл из github, используя wget

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

, см. Этот веб-сайт для получения более подробной информации

5 голосов
/ 05 октября 2015

Вы должны просто сделать это с raw URL вашего файла.

Например, чтобы загрузить README AFNetworking:

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

Поскольку это публичное репо, вам не нужны никакие учетные данные. Обратите внимание на вид URL: raw.githubusercontent.com/path/to/file

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...