Скачать отдельные файлы с GitHub

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

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

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

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

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

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

42 ответа

Решение

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

При просмотре файла у него есть ссылка на "сырую" версию. URL построен так

https://github.com/user/repository/raw/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 для будущих запросов".

  1. Перейдите к файлу, который вы хотите скачать.
  2. Нажмите на него, чтобы просмотреть содержимое в GitHub UI.
  3. В правом верхнем углу щелкните правой кнопкой мыши Raw кнопка.
  4. Сохранить как...

Перейти на DownGit - введите свой URL - скачать!

Специально подходит для больших файлов


Скачать с DownGit


Вы можете скачать отдельные файлы и каталоги в виде zip. Вы также можете создать ссылку на скачивание и даже дать имя zip-файлу. Подробное использование - здесь.

Вы можете использовать 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

Согласно этой сути, вы можете использовать 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/

Ты можешь использовать curl сюда:

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

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

Теперь это возможно в 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 является отличным примером этого.

Итоги 2019 г.

Есть множество способов справиться с этим, в зависимости от размера файла, от того, нужно ли вам загружать папки в дополнение к файлам, и если вы планируете делать это вручную или программно.

Ниже приведены шесть вариантов. А для тех, кто предпочитает более практические объяснения, я собрал видео на YouTube: Загрузите отдельные файлы и папки с GitHub.

Кроме того, я опубликовал аналогичный ответ на Stackru для тех, кому нужно загружать отдельные папки / каталоги с GitHub (в отличие от файлов).


1. Пользовательский интерфейс GitHub

  • На большинстве изображений есть кнопка загрузки.
  • На главной странице репозитория есть кнопка загрузки. Конечно, это загружает все репо, после чего вам нужно будет разархивировать загрузку, а затем вручную перетащить определенные файлы, которые вам нужны.

2. Контекстное меню браузера

  • Перейдите к файлу на GitHub, щелкните правой кнопкой мыши кнопку "Raw", чтобы открыть контекстное меню браузера. Оттуда, если вы используете Google Chrome, выберите "Сохранить ссылку как...". Другой браузер будет иметь аналогичный интерфейс, но описание выбора может отличаться. Например, в Safari он будет отображаться как "Загрузить связанный файл" и "Загрузить связанный файл как".

3. Сторонние инструменты

  • Существует множество расширений браузера и веб-приложений, которые могут справиться с этим, и DownGit является одним из них. Просто вставьте URL-адрес GitHub в файл и нажмите кнопку "Загрузить". Обратите внимание, что ссылка должна быть представлением размещенного на GitHub.com репозитория, а не прямой ссылкой на файл. Пример ссылки на файл:https://github.com/babel/babel-eslint/blob/master/lib/parse.js.

4. Subversion

  • GitHub не поддерживает git-archive (функция git, которая позволяет нам загружать определенные файлы). Однако GitHub поддерживает множество функций Subversion, одну из которых мы можем использовать для этой цели. Subversion - это система контроля версий (альтернатива git). Вам понадобится установленная Subversion. Возьмите URL-адрес GitHub для файла, который хотите загрузить. Однако вам нужно будет изменить этот URL. Вам нужна ссылка на репозиторий, за которой следует слово "ствол" и в конце путь к вложенному файлу. Другими словами, используя ту же ссылку на файл, о которой я упоминал выше, мы заменим "blob / master" на "trunk". Наконец, откройте терминал, перейдите в каталог, в который вы хотите загрузить контент, введите следующую команду (заменив URL-адрес созданным вами URL-адресом):svn export https://github.com/babel/babel-eslint/trunk/lib/parse.jsи нажмите ввод.

5. cURL

  • Вам понадобится установленный cURL. Перейдите к файлу на GitHub.com, щелкните левой кнопкой мыши кнопку "Raw", чтобы перейти к прямой ссылке на файл, скопируйте этот 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 выше). Однако этот метод не так уж и полезен для одного файла (вы, скорее всего, будете использовать его для загрузки определенной папки, как подробно описано в ответе, на который я ссылался выше).

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

GitHub Mate Скачать

Существует расширение Chrome под названием Enhanced Github.

Он добавит кнопку загрузки прямо справа от каждого файла.

В 2021 году GitHub добавил новую функцию открытия кода Visual Studio прямо в Интернете. Вы можете запустить его, просто нажав точку или клавишу точки , когда вы находитесь в любом репозитории.

Таким образом, для загрузки любого конкретного файла вы можете запустить vscode, нажав .ключ, то он отобразит все файлы репозитория в vscode, где вы можете загрузить любой файл, который хотите, right click> dowload.

  1. На github откройте файл, который хотите скачать
  2. Найдите кнопку "Необработанные" рядом с кнопкой "Обвинить".
  3. Нажмите "Alt" на клавиатуре и одновременно щелкните левой кнопкой мыши.
  4. Файл загрузится автоматически в формате ".txt" (для меня так и было)
  5. Измените расширение ".txt" на ".csv" вручную.

Это сработало для меня, и я надеюсь, что это поможет и вам.

  1. Просто скопируйте ссылку на страницу
  2. В командной строке введите: wget -L (exact copied link)
  3. Просто замените blob к rawна шаге 2
  4. Войти

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

Если вы хотите скачать zip-файл с github с помощью wget

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

см. этот сайт для более подробной информации

Этот метод работает для Windows, так как я никогда не использовал MAC, поэтому я не знаю, какие альтернативные ключи в MAC для ключей, о которых я собираюсь упомянуть ниже.

Давайте поговорим о файлах CSV. Если вы хотите скачать файл CSV:

  1. Перейдите к тому конкретному набору данных, который вы хотите загрузить, и щелкните по нему.
  2. Вы увидите кнопку "Raw" в верхней правой части набора данных.
  3. Нажмите "Alt", а затем нажмите левую кнопку "Raw".
  4. Весь CSV будет загружен в вашу систему.

Помните, вы должны нажать Alt и левой кнопкой мыши одновременно. Простое нажатие на кнопку "Raw" откроет CSV в браузере.

Надеюсь, это поможет.

Вместо ссылки на скачивание определенного файла в репозитории вы должны использовать функцию релизов GitHub, чтобы связать загружаемые данные (например, скомпилированные двоичные файлы) с теговой версией исходного кода, используемого для генерации этих данных.

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

Мы рады анонсировать релизы, рабочий процесс для доставки программного обеспечения конечным пользователям. Релизы - это первоклассные объекты с журналами изменений и бинарными активами, которые представляют полную историю проекта за пределами артефактов Git.

Релизы сопровождаются примечаниями к выпуску и ссылками для загрузки программного обеспечения или исходного кода.

Следуя соглашениям многих проектов Git, релизы привязаны к тегам Git. Вы можете использовать существующий тег или позволить релизам создавать тег при публикации.

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

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

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

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

Просто используйте wget с параметром raw=True

      wget "https://github.com/user/repository/blob/master/directory/file_name?raw=True" -O target_path/file_name

Чтобы загрузить файл из репозитория Github, используйте команду 'curl' со ссылкой на необработанный файл.

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

Добавьте параметр --output, а затем новое имя файла, чтобы загрузить необработанный файл во вновь созданный файл.

Это определенно будет работать. По крайней мере, в Chrome. Щелкните правой кнопкой мыши значок "Raw" -> Сохранить ссылку как.

Теперь можно загрузить любой файл или любую конкретную папку в репозитории с помощью этого расширения Google Chrome:

GitZip для github:ссылка: https://chrome.google.com/webstore/detail/gitzip-for-github/ffabmkklhbepgcgfonabamgnfafbdlkn

Использование:

  1. На любой странице репозитория GitHub.
  2. Просто дважды кликните по нужным предметам.
  3. Нажмите кнопку загрузки в правом нижнем углу.
  4. Посмотрите на панель прогресса и дождитесь загрузки триггера браузера.
  5. Получить файл ZIP.

Я недавно нашел сервис под названием gitzip и его также с открытым исходным кодом:

сайт - http://kinolien.github.io/gitzip/

РЕПО - https://github.com/KinoLien/gitzip

Посетите вышеуказанный сайт, введите URL-адрес репозитория или каталога, вы можете скачать отдельные файлы или весь каталог в виде zip-файла.

  1. Страница, на которую вы ссылаетесь, отвечает на первый вопрос.

  2. GitHub также имеет возможность загрузки таких вещей, как релизы.

  3. Google Code вообще не имеет Git.

  4. GitHub, Google Code и SourceForge- это бесплатный хостинг. SourceForge все еще может делать CVS.

На Mac или Linux установите jq и используйте его для извлечения файла из Github следующим образом:

      curl -H 'Authorization: token <ACCESS_TOKEN>' \
   -H "Accept: application/vnd.github.v3+raw" -L \
   https://api.github.com/repos/MY-ORG/MY-REPO/contents/MY-FILE-PATH | \
   jq -r '.content' | base64 --decode > MY_FILE_NAME.txt

Документацию по приведенной выше команде можно найти здесь.

Если вы используете curl и firefox... вы можете использовать надстройку cliget, которая генерирует вызов curl, включая все механизмы аутентификации (также называемые куки).

Так что щелкните правой кнопкой мыши на raw Кнопка Cliget->"Скопировать URL для ссылки", а затем вставьте его в оболочку. Вы получите свой файл, даже если вам пришлось войти в систему, чтобы увидеть его.

Мой простой способ сделать это:

  1. нажмите кнопку "Raw", чтобы отобразить содержимое файла github_csv.csv в браузере.
  2. Затем создайте file.csv и откройте его в текстовом редакторе, например в блокноте.
  3. Затем скопируйте содержимое файла с сайта и вставьте его в файл.csv.
  4. Ваш file.csv - это github_csv.csv

вы можете скопировать содержимое файла GitHub, а затем вставить его в свой файл. ПРОСТОЙ!

I. Если вы хотите загрузить файл типа .so, отличный от исходного кода, попробуйте нажатьDownloadкнопка, как показано ниже:

Файл будет загружен через ваш браузер.

II. Если вы хотите загрузить исходный код, нажмитеRawи перейдет на сырую.. страницу,

Просто скопируйте / вставьте или используйте команду curl или wget, чтобы получить его в своем терминале.

Я думаю новый url структура raw.giturl например:

Git файл

сырье

Другие вопросы по тегам