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

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

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

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

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

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

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

26 ответов


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

при просмотре файла он имеет ссылку на "сырую" версию. The URL-адресом построена так

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

заполнив пробелы в URL-адресе, вы можете использовать команды wget или скручиваемость-L опция, см. ниже) или что угодно, чтобы загрузить один файл. Опять же, вы не получите ничего из хорошие функции управления версиями, используемые Git, делая это.

Update: я заметил, что вы упомянули, что это не работает для двоичных файлов. Вероятно, вам не следует использовать двоичные файлы в репозитории Git, но GitHub имеет раздел загрузки для каждого репозитория, который вы можете использовать для загрузки файлов. Если вам нужно более одного двоичного файла, вы можете использовать a .сжатый файл. URL для загрузки загруженного файла:

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

обратите внимание, что URL-адреса, приведенные выше, из ссылок на github.com, будет перенаправлять к raw.githubusercontent.com. Вы не должны напрямую использовать URL, заданный этим перенаправлением HTTP 302, потому что per RFC 2616: "поскольку перенаправление может быть изменено время от времени, клиент должен продолжать использовать Request-URI для будущих запросов."


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

вы можете использовать API V3 для получения raw-файла (вам понадобится токен OAuth):

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

все это должно идти по одной линии. The -O опция сохраняет файл в текущем каталоге. Вы можете использовать -o filename, чтобы указать другое имя файла.

чтобы получить токен OAuth, следуйте инструкциям здесь: https://help.github.com/articles/creating-an-access-token-for-command-line-use

Я написал это как суть также: https://gist.github.com/madrobby/9476733


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

специально для БОЛЬШИЕ ФАЙЛЫ


Download with DownGit


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


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

GitHub Mate Download


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


чтобы следить за тем, что сказал 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


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

В случае, если вы хотите скачать 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 будет загружен в вашей системе.

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

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


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

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

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

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


можно использовать curl таким образом:

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

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


  1. страница, которую вы связали с ответами на первый вопрос.

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

  3. Код Google нет Git на всех.

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


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


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

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

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

Вист выше сайта, введите РЕПО или URL-адрес каталога, вы можете скачать отдельные файлы или весь каталог в виде zip-файла.


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

файл git

raw


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

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


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

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

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

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

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

enter image description here


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

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

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


  1. справа чуть ниже "Clone in Desktop "написано"загрузить Zip-файл"
  2. Скачать Zip-Файл
  3. извлечь файл

для пользователей с 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


или попробуйте это

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');

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

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-я линия работает для меня, и я надеюсь, поможет другим...


вы можете попробовать GitHub-файлы-fetcher, это инструмент командной строки, который загружает одну папку или файл из GitHub РЕПО.

подумайте о реальном сценарии: вы посещали следующую страницу веб-страницы и хотите загрузить подкаталог.

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

извините, что не разрешено публиковать изображения.

С github-files-fetcher, вы следует сначала скопировать url этой страницы, которая https://github.com/reduxjs/redux/tree/master/examples/async, а затем выполните команду ниже в командной строке:

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


теперь можно загрузить любой файл или любую конкретную папку в репозитории, используя это расширение google chrome:

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

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

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

enter image description here

enter image description here


Это то, что сработало для меня только что...

  1. откройте файл raw на отдельной вкладке.

  2. скопируйте все это в свой блокнот в новом файле.

  3. сохраните файл в расширении, которое он первоначально имел

...работал на него .php-файл I DL только что.