Как скачать папку с github
Перейти к содержимому

Как скачать папку с github

  • автор:

Скачивание архивов исходного кода

Вы можете скачать моментальный снимок кода в репозитории.

В этой статье

Обзор архивов исходного кода

Моментальный снимок любой ветви, тега или конкретной фиксации можно скачать из GitHub.com. Эти моментальные снимки создаются командой git archive в одном из двух форматов: tarball или zipball. Моментальные снимки не содержат всю историю репозитория. Если требуется весь журнал, можно клонировать репозиторий. Дополнительные сведения см. в разделе Клонирование репозитория.

Скачивание архивов исходного кода

Архивы исходного кода можно скачать тремя способами.

Скачивание архивов исходного кода из представления репозитория

  1. На GitHub.comперейдите на главную страницу репозитория.
  2. Над списком файлов щелкните

Code.

Снимок экрана: список файлов на целевой странице репозитория. Кнопка

Скачивание архивов исходного кода из выпуска

  1. На GitHub.comперейдите на главную страницу репозитория.
  2. Справа от списка файлов щелкните Выпуски.

Снимок экрана: главная страница репозитория. Ссылка, помеченная как

Исходный код (zip) или

Скачивание архивов исходного кода из тега

  1. На GitHub.comперейдите на главную страницу репозитория.
  2. Справа от списка файлов щелкните Выпуски.

Снимок экрана: главная страница репозитория. Ссылка, помеченная как

tar.gz.

Снимок экрана: страница

URL-адреса архива исходного кода

Архивы исходного кода доступны по определенным URL-адресам для каждого репозитория. Например, рассмотрим репозиторий github/codeql . Существуют различные URL-адреса для скачивания ветви, тега или определенного ИД фиксации.

Тип архива Пример URL
Ветвь main https://github.com/github/codeql/archive/refs/heads/main.tar.gz
Тег codeql-cli/v2.12.0 https://github.com/github/codeql/archive/refs/tags/codeql-cli/v2.12.0.zip
Commit aef66c4 https://github.com/github/codeql/archive/aef66c462abe817e3aad91d97aa782a1e2ad2c7.zip

Примечание. Вы можете использовать url-адреса .zip .tar.gz , указанные выше, для запроса zipball или tarball соответственно.

Стабильность архивов исходного кода

Архивы исходного кода создаются по запросу, кэшируются в течение некоторого времени, а затем удаляются. Если тот же архив запрашивается еще раз в будущем, он будет повторно создан. Важно понимать, какие гарантии : GitHub делает архивы исходного кода.

  • Архив ИД фиксации всегда будет иметь одинаковое содержимое файла при каждом запросе, если ИД фиксации по-прежнему находится в репозитории, а имя репозитория не изменилось.
  • Так как ветви и теги могут перемещаться в разные ИД фиксации, будущие скачивание архива может иметь другое содержимое, чем скачанные ранее архивы одной ветви или тега. Если ветвь или тег по-прежнему указывает на ту же ИД фиксации, он будет иметь то же содержимое файла.
  • Точные параметры сжатия, используемые для создания zipball или tarball, могут меняться с течением времени. Извлеченное содержимое не изменится, если ветвь или тег не изменяется, но внешний сжатый архив может иметь другой макет байтов. GitHub даст по крайней мере шесть месяцев уведомления перед изменением параметров сжатия.
  • Имя репозитория является частью структуры каталогов в архиве. Таким образом, если имя репозитория изменится, имя корневого каталога также изменится.

Если вы полагаетесь на стабильность архивов исходного кода для воспроизведения (обеспечивая всегда одинаковые файлы внутри архива), рекомендуется использовать REST API архивов с ИД фиксации для :ref . Использование ИД фиксации гарантирует, что вы всегда получите одно и то же содержимое файла в архиве, и вы будете защищены от репозиториев перезаписи тегов или перемещения голов ветвей.

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

Для создания и отправки этих файлов в процессе выпуска можно использовать что-то подобное сторонним действием GitHub. REST API ресурсов выпуска можно использовать позже для их извлечения.

Как скачать с GitHub

GitHub иногда ставит в тупик своей «шикарной» возможностью скачать оттуда что-либо. Нормально и удобно можно скачать с гитхаба только весь репозиторий целиком, но что делать, если нужно скачать только одну папку или просто один текстовый файл? Вот тут можно долго плясать с бубном и посыпать голову пеплом, поражаясь логике разработчиков гитхаба, ибо такой возможности там просто нет.

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

  1. На гитхабе открываете интересующий вас файл, если вам нужен только он, или заходите в интересующую вас папку, если нужна вся папка
  2. Копируете из адресной строки браузера текущий адрес (это будет адрес файла или папки на гитхабе)
  3. Переходите по ссылке: https://downgit.github.io
  4. В поле на сайте https://downgit.github.io вставляете скопированный адрес с гитхаба
  5. Жмете кнопку «Download»
  6. Получаете необходимый вам файл или папку с гитхаба в виде ZIP-архива
  7. Распаковываете архиватором и пользуетесь
  • Плата управления
  • Кинематика
  • BLTouch / BFPTouch
    • BLTouch на RN 1.1
    • Модуль на ESP8266
    • Модуль на ESP32
    • Прошивка WiFi на RN 1.1
    • 1. Выбор прошивки
    • 2. Процесс прошивки
    • 3. Настройка, Начало
    • 4. Настройка, Кинематика
    • 5. Настройка, Порты
    • 6. Настройка, Моторы
    • 7. Настройка, Концевики
    • 8. Настройка, Уровень стола
    • 9. Настройка. BLTouch
    • 10. Настройка. Окончание
    • 11. Настройка слайсеров
      • Стартовые коды
      • Плагин для Cura и Prusa
      • Подстройка перед печатью
      • Замер уровней стола
      • Babystepping
      • Z-триггер
      • Прерывание печати
      • Типичные ошибки
      • Кнопки и иконки
      • Возобновление печати при сбое питания (UPS)
      • Долгое нажатие на виджет
      • Обновление прошивки
      • Обновление по WiFi
      • Калибровка PID
      • Динамический PID
      • Калибровка ретрактов
      • Калибровка Linear Advance
      • Полный сброс настроек
      • Сброс сниппетов
      • Telegram
      • Яндекс Диск
      • Генератор файлов
      • Оборудование
      • Назначения портов
      • Моторы
      • Управление
      • Trinamic
      • Концевики
      • Уровень стола
      • Парковка
      • Экструдер
      • Нагреватели
      • Питание
      • Вентиляторы
      • Wi-Fi
      • Telegram
      • Ретракты
      • Перекос
      • Люфт
      • Лазер
      • Конфигурация UI
      • Сенсор экрана
      • G код
      • Инспектор файлов
      • Разное
      • Язык
      • Архивирование
      • Титульный виджет
      • Печать
      • Конфигурация
      • G-код
      • WiFi
      • Отладка
      • Инспектор файлов
      • Парковка
      • Уровни
      • Нагрев
      • Графики температур
      • Вентиляторы
      • Перемещение
      • Филамент
      • Пресеты температур
      • Калькулятор
      • Кнопка пресетов
      • Облачные диски
      • Йогурт-таймер (!)
      • Долгое нажатие на иконки
      • Как скачать с GitHub
      • Настройки по моделям
        • Sapphire Plus 1.1
        • TT Sapphire Pro
        • Two Trees Bluer
        • FlyingBear Ghost 5
        • Flying Bear Ghost 6 / mks Nano4 v3.1
        • Creativity ELF
        • Александр пишет КАПСОМ

        Copyright © 2024 SHUI — прошивка для 3D-принтеров. All rights reserved.

        Получение постоянных ссылок на файлы

        При просмотре файла на GitHub.comможно нажать клавишу «y», чтобы обновить URL-адрес до постоянная ссылка до точной версии файла, который вы видите.

        В этой статье

        Совет. Нажмите кнопку «?» на любой странице в GitHub, чтобы просмотреть все доступные сочетания клавиш.

        В представлениях файлов отображается последняя версия ветви

        При просмотре файла на GitHub.comобычно отображается версия в текущей главе ветви. Например:

        ссылается на репозиторий GitHub codeql и отображает текущую версию файла README.md в ветви main .

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

        Нажмите клавишу Y , чтобы получить постоянную ссылку на файл в определенной фиксации

        Для постоянной ссылки на определенную версию файла, который вы видите, вместо использования имени ветви в URL-адресе (т. е. main части в приведенном выше примере), поместите ИД фиксации. Это приведет к окончательной ссылке на точную версию файла в этой фиксации. Например:

        main заменяет определенный ИД фиксации, а содержимое файла не изменится.

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

        Совет. Можно указать любой идентификатор, который можно разрешить в фиксацию в URL-адресе, включая имена ветвей, конкретные SHA фиксации или теги.

        Создание постоянной ссылки на фрагмент кода

        Вы можете создать постоянную ссылку на определенную строку или диапазон строк кода в определенной версии файла или запроса на вытягивание. Дополнительные сведения см. в разделе Создание постоянной ссылки на фрагмент кода.

        Дополнительные материалы

        Как скопировать репозиторий?

        На веб-сервере есть папка domain.ru в ней папка web
        Захожу в domain.ru команда:

        Затем:
        git remote add . git

        Клонирую репозиторий в папку web
        git clone https://. /name.git web

        Всё копируется, но в папке web тоже создалась папка .git зачем? Я же уже только создал её тут. Как .git оставить в domain.ru а в web стянуть чисто файлы проекта?

        • Вопрос задан более трёх лет назад
        • 5146 просмотров

        Комментировать
        Решения вопроса 1
        Alexander Movchan @Alexander1705

        По первому запросу git separate working directory нашёл ответ:

        git —git-dir=../repo —work-tree=. add foo

        Вам придётся при каждом вызове git указывать дополнительные параметры, но вы, конечно же можете сделать себе alias:

        alias git=»git —git-dir=../repo —work-tree=.»

        Или, если используете и другие репозитории, в которых такое поведение не нужно:

        alias webgit=»git —git-dir=../repo —work-tree=.»

        P.S. По той же ссылке есть и другие варианты решения.

        Ответ написан более трёх лет назад
        Нравится 1 10 комментариев

        nomostrack

        Avtomat @nomostrack Автор вопроса

        Я не очень понял, work-tree я уже гуглил раньше, это папка в которой лежит .git обычно вот мне надо сделать work-tree=web? И тогда проект будет в ней, но за что тогда git-dir отвечает?
        Не понимаю как эту команду для моего случая адаптировать, сделал:
        git —git-dir=. —work-tree=. add web
        ошибка: fatal: Not a git repository: ‘.’

        Alexander Movchan @Alexander1705
        Выполните следующие команды в папке web:

        git --git-dir=../git --work-tree=. init git --git-dir=../git --work-tree=. remote add . git --git-dir=../git --work-tree=. pull

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *