Как скачать папку с гитхаба?

Я хотел загрузить папку mysite по этой ссылке: https://github.com/username/repository/master/


person Gangesh    schedule 11.10.2015    source источник
comment
Возможный дубликат Загрузите отдельную папку или каталог с GitHub репо   -  person Helen    schedule 21.07.2017
comment
Перейдите к DownGit ›Введите URL-адрес папки GitHub› Загрузить (без команд, без инструментов, без суеты!)   -  person Minhas Kamal    schedule 13.05.2020
comment
github UI - отстой. должна иметь опцию загрузки папки.   -  person JGFMK    schedule 13.12.2020


Ответы (11)


Есть кнопка Download ZIP. Если вы хотите делать редкие покупки, на сайте есть много решений. Например, здесь.

person C1sc0    schedule 11.10.2015
comment
скачать все в виде zip-архива ... затем разархивировать, удалить то, что вам не нужно, разархивировать и скопировать туда, куда вы хотите ... - person Monica Heddneck; 13.01.2018
comment
Или просто загрузите весь репозиторий и просматривайте нужные файлы, не устанавливая и не настраивая никаких инструментов. (в любом случае ваш комментарий дублируется) - person C1sc0; 24.02.2018
comment
Это не должен быть принятым ответом. Чтобы быть конкретным, вы не можете загрузить только папку или файл, это неправильно. Ниже приведены различные правильные решения. - person colemars; 30.08.2019
comment
Спасибо за предложение, обновлю ответ. Я не думаю, что приведенные ниже решения верны, они просто работают. Вы можете использовать git для загрузки подпапки из репозитория. В любом случае, сайт github.com, на котором размещен репозиторий, не позволяет сделать это без использования каких-либо внешних инструментов. - person C1sc0; 31.08.2019

Вы можете загрузить файл / папку с github

Просто используйте: svn export <repo>/trunk/<folder>

Ex: svn export https://github.com/lodash/lodash/trunk/docs

Примечание. Сначала вы можете перечислить содержимое папки в терминале, используя svn ls <repo>/trunk/folder

(да, это svn. по-видимому, в 2016 году вам все еще понадобится svn, чтобы просто загрузить некоторые файлы github)

person Anona112    schedule 05.12.2016
comment
Мне пришлось использовать <repo>/branches/<branch_name>/<folder> для ветки, отличной от master, но в остальном все работало безупречно. - person coreyward; 18.10.2019
comment
<repo>/tags/<tag_name>/<folder> тоже вроде работает - person skube; 27.01.2020

Вы можете использовать Github Contents API, чтобы получить ссылку на архив и tar, чтобы получить указанную папку.

Командная строка:

curl https://codeload.github.com/ [владелец] / [репо] /tar.gz/master | \ tar -xz --strip = 2 [репо] -master / [путь_папки]


Например,
если вы хотите загрузить examples / with-apollo / из папки zeit / next.js, вы можете ввести это:

curl https://codeload.github.com/zeit/next.js/tar.gz/master | \
  tar -xz --strip=2 next.js-master/examples/with-apollo
person chuyik    schedule 22.05.2017
comment
Отлично! Это также необязательно с WGET и с обычным URL-адресом архива github: wget -O - https://github.com/zeit/next.js/archive/master.tar.gz | tar -xz --strip=2 "next.js-master/examples/with-apollo" - person Noam Manos; 21.05.2020
comment
zip тоже может работать. wget -c https://github.com/user/project/archive/master.zip - person Nick Dong; 18.07.2020
comment
Этот вариант - чушь. Если вы только какие изображения - он сначала загружает все репо, а затем обрезает его. Делает менее болезненным индивидуальную загрузку 15 изображений вручную! - person JGFMK; 13.12.2020

Воспользуйтесь онлайн-инструментом GitZip. Он позволяет загружать подкаталог репозитория github в виде zip-файла. Команды git не нужны!

person gdrt    schedule 23.02.2018
comment
идеальное решение - person dvdmn; 10.08.2019
comment
Зачем нужен доступ на запись ко всем моим общедоступным репозиториям? Разве это не угроза безопасности? - person Jared Thirsk; 22.10.2019
comment
@JaredThirsk, но это не так. Можете ли вы рассказать нам, когда это произошло в вашем случае? - person gdrt; 15.05.2020
comment
@gdrt Когда я нажимаю Get Token: Normal, Github спрашивает: Это приложение сможет читать и записывать все данные общедоступного репозитория. Это включает в себя следующее: - Код, ... - person Jared Thirsk; 18.05.2020
comment
@JaredThirsk, вы должны предоставить токен доступа к API, если репозиторий не является общедоступным. Если он общедоступный, просто укажите URL-адрес репозитория и нажмите кнопку «Загрузить». - person gdrt; 18.05.2020
comment
@gdrt Хорошо, понятно. Было бы неплохо, если бы при переходе на эту страницу не было всплывающего окна по умолчанию, а также сообщения Мы рекомендовали сначала получить токен, а затем выполнить свои действия. - person Jared Thirsk; 19.05.2020

Как загрузить определенную папку из репозитория GitHub

Вот правильное решение в соответствии с этим post:

  • Создать каталог

     mkdir github-project-name 
     cd github-project-name
    
  • Настроить репозиторий git

     git init
     git remote add origin <URL-link of the repo>
    
  • Настройте свой git-repo для загрузки только определенных каталогов

     git config core.sparseCheckout true # enable this
    
  • Установите папку, которую вы хотите загрузить, например вы хотите загрузить только каталог документов из https://github.com/project-tree/master/doc

     echo "/absolute/path/to/folder" > .git/info/sparse-checkout 
    

    Например. если вы хотите загрузить только каталог документов из главного репозитория https://github.com/project-tree/master/doc, тогда ваша команда - echo "doc" > .git/info/sparse-checkout.

  • Загрузите репо как обычно

     git pull origin master
    
person abu_bua    schedule 28.04.2020
comment
Лучший ответ из всех! Однако я считаю, что в git remote add origin не должно быть -f, поскольку -f означает немедленную выборку с сервера, чего следует избегать, поскольку требуется только разреженный путь! - person Robert; 24.06.2020
comment
Отличный ответ! - person canmustu; 24.06.2021

Зависимость: cURL и _ 2_.

curl {url for downloading zip file} | 7z a -tzip {project name}-{branch name}/{folder path in that branch}

Например:

curl https://github.com/hnvn/flutter_shimmer/archive/master.zip | 7z a -tzip flutter_shimmer-master/examples
person Kalpesh Kundanani    schedule 30.08.2019

Вы должны загрузить весь проект либо с помощью кнопки «Клонировать на рабочий стол», которая будет использовать собственную программу github, либо с помощью кнопки «Загрузить как zip».

А затем найдите эту папку в загруженном проекте.

person Paran0a    schedule 11.10.2015

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

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

curl -sSLfo ./fetch \
https://github.com/gruntwork-io/fetch/releases/download/v0.3.12/fetch_linux_amd64
chmod +x ./fetch
./fetch --repo="https://github.com/foo/bar" --tag="${VERSION}" --source-path="/baz" /tmp/baz
person matrik    schedule 17.01.2021

Существует также хорошее расширение для браузера, которое позволяет dl-файлам или папкам.

person abu_bua    schedule 07.04.2021

Вы можете загрузить всю папку в разделе «Параметры клонирования» или «Загрузить» (URL-адрес Git или «Загрузить ZIP-архив»).

  1. Есть кнопка Download Zip

  2. Используя команду, вы можете загрузить всю папку на свой компьютер, но для этого вам понадобится git на вашем компьютере. Вы можете найти URL-адрес Git uner

    git clone https://github.com/url

person VIKAS KOHLI    schedule 14.11.2017

Вы также можете просто клонировать репо, после того, как клонирование будет выполнено, просто выберите папку или подлость, которую вы хотите. Чтобы клонировать:

git clone https://github.com/somegithubuser/somgithubrepo.git

затем перейдите в клонированный каталог DIR и найдите файл или каталог, который вы хотите скопировать.

person user2963512    schedule 02.10.2017