как загрузить папку с несколькими файлами из github с помощью wget? [Дубликат]

Да, вы можете определить метод расширения для типа struct / value. Однако они не имеют такого же поведения, как методы расширения для ссылочных типов.

Например, метод расширения GetA () в следующем коде C # получает копию структуры, а не ссылку на структуру. Это означает, что метод расширения C # в структуре не может изменять исходное содержимое структуры.

  public static class TestStructExtensionMethods {public struct FooStruct {public int a;  } public static int GetA (этот FooStruct st) {return st.a;  }}  

Чтобы изменить содержимое структуры, struct paramater нужно объявить как «ref». Тем не менее, «этот ref» не разрешен в C #. Самое лучшее, что мы можем сделать, это статический метод без расширения:

  // это работает, но неэффективно, потому что он копирует весь FooStruct // просто для того, чтобы вернуть общедоступный статический int GetA (  ref FooStruct st) {return st.a;  }  

В VB.NET вы можете создать это как метод расширения структуры ByRef, чтобы он мог изменить исходную структуру:

  'Это эффективно  , поскольку ему передается ссылка на struct & lt; Extension () & gt;  _ Public Sub GetA (ByRef [me] As FooStruct) As Integer Return [me] .a End Sub 'Можно изменить поля структуры, потому что у нас есть ref & lt; Extension () & gt;  _ Public Sub SetA (ByRef [me] As FooStruct, newval As Integer) [me] .a = newval End Sub  
735
задан random 6 November 2013 в 07:22
поделиться

26 ответов

Вы можете выполнить простую загрузку дерева каталогов:

git archive --remote git@github.com:foobar/Test.git HEAD:foo | tar xf -

Но если вы хотите проверить это, и сможете совершать коммиты и отталкивать их, вы не можете этого сделать что.

3
ответ дан araqnid 16 August 2018 в 05:16
поделиться
  • 1
    Недопустимая команда: 'git-upload-archive' foobar / Test.git '' Вы, похоже, используете ssh для клонирования git: // URL. Убедитесь, что параметр конфигурации core.gitProxy и переменная среды GIT_PROXY_COMMAND НЕ установлены. fatal: удаленный конец неожиданно повесил tar: это не похоже на tar tar tar: выход из состояния отказа из-за предыдущих ошибок – g_inherit 18 August 2011 в 12:57
  • 2
    как @g_inherit наблюдает, вы получаете ошибку git-upload-archive – Hedgehog 6 February 2012 в 10:55
  • 3
    @g_inherit Я могу воспроизвести эту проблему. Хотя это может быть правильное направление, этот ответ недействителен. – Uli Köhler 5 November 2014 в 16:31
  • 4
    несмотря на так много голосов, это единственный совет, который работал для меня. – oat 21 December 2014 в 01:05

Если directoy, который вы хотите загрузить, является разделенной библиотекой, лучше создать другое git-репо, а затем использовать функцию god subodule.

Конечно, вы должны быть владельцем начальное репо вы хотите

0
ответ дан Asenar 16 August 2018 в 05:16
поделиться

Я написал инструмент с Node.js только для этого. Проверьте Загрузите Repo Dir

install с npm i -g dl-repo-dir и командой repo будут доступны по всему миру.

загрузить и переименовать каталог в репозитории

repo download aztack/download-repo-dir lib src/lib/new-name

загрузить репозиторий

repo download aztack/download-repo-dir '' src/lib/download-repo-dir

скачать из частного репозитория gitlab с данным тегом

export GITLAB_API_PRIVATE_TOKEN=YOUR_TOKEN_HERE

repo download gitlab:mygitlab.com:topgroup/subgroup/repo#v1.0.0 dir src/lib/new-name

и файл repo.json сохранит всю информацию.

В новом проекте, вы можете инициализировать проект с помощью repo.json с помощью команды repo init.

1
ответ дан aztack 16 August 2018 в 05:16
поделиться

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

Однако есть гораздо более простой способ , GitHub имеет API, который позволяет загружать один файл или содержимое всего каталога с помощью запросов GET . Вы можете получить доступ к каталогу, используя https://api.github.com/repos/:owner/:repo_name/contents/:path, который возвращает объект JSON, перечисляющий все файлы в каталоге. Параметр download_url включен в перечисление - это ссылка на исходное содержимое файла. Затем файл можно загрузить с помощью этого URL.

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

0
ответ дан Calvin 16 August 2018 в 05:16
поделиться

Я работаю с серверами CentOS 7, на которых у меня нет корневого доступа, ни git, svn и т. д. (и не хочу!), поэтому сделал скрипт python для загрузки любой папки github: https: // github .com / andrrrl / github-folder-downloader

Использование прост, просто скопируйте соответствующую часть из проекта github, предположим, что проект https://github.com / MaxCDN / php-maxcdn / , и вам нужна папка, в которой есть только некоторые исходные файлы, тогда вам нужно сделать что-то вроде:

$ python gdownload.py "/MaxCDN/php-maxcdn/tree/master/src" /my/target/dir/ (создаст целевую папку, если doesn ' t существует)

Он требует библиотеки lxml , может быть установлен с помощью easy_install lxml. Если у вас нет доступа root (например, я), вы можете создать файл .pydistutils.py в ваш $HOME dir с этим содержимым: [install] user=1 И easy_install lxml будет работать (ref: https://stackoverflow.com/a/33464597/591257 ).

2
ответ дан Community 16 August 2018 в 05:16
поделиться

Тот, кто работает над конкретной папкой, ему нужно клонировать эту конкретную папку, поэтому, пожалуйста, выполните следующие шаги ** --- с помощью SPARSE CHECKOUT --- **

Шаг 1: Создайте directory.

Шаг 2: Инициализируйте репозиторий Git. (git init)

Шаг 3: Разрешить разреженные проверки. (git config core.sparsecheckout true)

Шаг 4: Скажите Git, какие каталоги вы хотите (эхо 2015 / бренд / май (см. папку, в которую вы хотите работать) >> .git/info/sparse-checkout)

Шаг 5: Добавить пульт (git remote add -f origin https://jafartke.com/mkt-imdev/DVM.git)

Заключительный шаг 6: выборка файлов (git pull origin master)

11
ответ дан fnunnari 16 August 2018 в 05:16
поделиться
  • 1
    Жаль, что этого комментария не хватило. Похоже, что предоставленное решение распространяется на все репозитории git, а не только на github. – Kalyan 26 August 2016 в 16:00
  • 2
    Тем не менее это фактически не делает желаемого. Он по-прежнему клонирует весь репозиторий, он просто не проверяет некоторые папки. – Chris 5 January 2017 в 05:18
  • 3
    Спасибо !!! Работал для меня :) – Mihai M. 17 March 2017 в 17:32
  • 4

Если у вас есть svn, вы можете использовать svn export для этого:

svn export https://github.com/foobar/Test.git/trunk/foo

Обратите внимание на формат URL:

  • Основной URL-адрес https://github.com/
  • /trunk добавлено в конец

Перед тем, как вы запустите svn export, полезно сначала проверить содержимое каталога с помощью:

svn ls https://github.com/foobar/Test.git/trunk/foo
137
ответ дан janos 16 August 2018 в 05:16
поделиться
  • 1
    Это все еще работает? Пробовал это с TortiseSVN, и я получил ошибку разрешения, попросив меня предоставить учетные данные. – john 4 September 2015 в 14:23
  • 2
    @john Я уверен, что слишком поздно, чтобы оказать большую помощь, но есть ли у вас двухфакторная аутентификация на вашей учетной записи GitHub? Если это так, я думаю , я где-то читал, вам нужно будет использовать предварительно сгенерированный ключ для пароля (который вам нужно найти в настройках GitHub). – nick 23 October 2015 в 03:07
  • 3
    Что касается форматирования URL-адресов, вы можете сохранить расширение .git. Вы можете использовать полную ссылку проекта и начать с использования svn ls, а затем полный путь проекта. Пример: svn ls https://github.com/RobTillaart/Arduino.git. Чтобы экспортировать только одну папку, вы просто добавляете /trunk, а затем требуемый путь, например svn export https://github.com/RobTillaart/Arduino.git/trunk/libraries/DHTlib. Легче сохранить путь проекта неповрежденным. – jgrocha 21 February 2016 в 12:33
  • 4
    @jgrocha Я не уверен, что это сработало еще в 2013 году, но сейчас, так что спасибо, обновил сообщение – janos 21 February 2016 в 12:44
  • 5
    Пример: для загрузки содержимого в https://github.com/miguelgrinberg/python-socketio/tree/master/examples/wsgi запустите svn export https://github.com/miguelgrinberg/python-socketio.git/trunk/examples/wsgi. В текущем рабочем каталоге будет создан каталог с именем wsgi. Только исходные файлы, ничего больше. Нет .git, нет файлов, связанных с subversion. – Rockallite 10 March 2017 в 08:20

Чтобы усилить ответы выше, реальным примером из реального репозитория GitHub для локального каталога будет:

svn ls https://github.com/rdcarp/playing-cards/trunk/PumpkinSoup.PlayingCards.Interfaces

svn export https://github.com/rdcarp/playing-cards/trunk/PumpkinSoup.PlayingCards.Interfaces  /temp/SvnExport/Washburn

Иногда конкретный пример помогает прояснить предложенные замены.

4
ответ дан John Washburn 16 August 2018 в 05:16
поделиться

Если вы действительно просто хотите просто «загрузить» папку, а не «клонировать» ее (для разработки), самый простой способ просто получить копию самой последней версии репозитория ( и поэтому папка / файл внутри него), без необходимости клонирования всего репо или даже установки git в первую очередь, заключается в загрузке zip-архива (для любого репо, fork, branch, commit и т. д.), перейдя к желаемый репозиторий / fork / branch / commit на GitHub (например, http(s)://github.com/<user>/<repo>/commit/<Sha1> для копии файлов, как и после определенного коммита) и выбора кнопки Downloads рядом с верхним правом.

архивный формат не содержит никакой магии git-repo, только сами отслеженные файлы (и, возможно, несколько файлов .gitignore, если они были отслежены, но вы можете игнорировать их: p) - это означает, что если код изменится и вы хотите остаться наверху, вам придется вручную перезагрузить его, а это также означает, что вы не сможете использовать его в качестве репозитория git ...

Не уверен, что это то, что вы ищете ибо в этом случае (ага in, "download" / view vs "clone" / develop), но он может быть полезен тем не менее ...

12
ответ дан johnny 16 August 2018 в 05:16
поделиться
  • 1
    Если вы не видите ссылку для загрузки, убедитесь, что вы находитесь на главной странице репо (а не в дочернем каталоге.) Похоже, вы можете загружать только ZIP-репозиторий всего репо. Кроме того, эта страница справки github может быть полезна. – JD Smith 5 September 2013 в 17:07
  • 2
    Легкий доступ к точкам и щелчкам. Легко получить предварительный выпуск. Легко вытащить нужную папку из загруженного почтового индекса. Спасибо. – Andy Thomas 9 April 2015 в 21:33
  • 3
    Общий URL-адрес для загрузки из tar.gz: https://github.com/${owner}/${repo}/archive/${hash}.tar.gz – Krisztian 12 August 2017 в 19:04

Два варианта этой функции:

Вариант 1: Расширения браузера

Расширение Chrome , Firefox Addon

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

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

Получить токен:

  1. Нажмите значок GitZip Extension в вашем браузере.
  2. Нажмите ссылку «Обычный» или «Частный», кроме «Получить токен».
  3. Разрешить разрешение GitZip на странице авторизации Github.
  4. Вернуться на страницу репо начала.
  5. Продолжить использование.

Вариант 2: Github gh-страница

http://kinolien.github.io/ gitzip с использованием GitHub API и библиотек JSZip, FileSaver.js.

Шаг1: Введите github url в поле вверху справа. Шаг 2: нажмите клавишу ввода или щелкните скачать для загрузки zip напрямую или нажмите кнопку поиска, чтобы просмотреть список подпапок и файлов. Шаг 3. Нажмите кнопку «Загрузить файл Zip» или «Получить файл», чтобы получить файлы.

В большинстве случаев он работает нормально, за исключением того, что папка содержит более 1000 файлов из-за ограничений API Github Trees , (относится к Github API # Contents )

И он также может поддерживать приватные / публичные репозитории и обновлять ограничение скорости, если у вас есть учетная запись GitHub и использовать ссылку «get token» в этот сайт.

359
ответ дан Kino 16 August 2018 в 05:16
поделиться
  • 1
    Это потрясающе, но похоже, что это так удивительно, что спрос подталкивает вас к вашему ratelimit, и поэтому он больше не работает ;-) Было бы здорово, что вы могли бы подключиться к GitHub oAuth - что позволило бы поддерживать частную поддержку репо, а также увеличивать ваш лимит ставок, так как они будут проходить проверку подлинности – hobailey 1 April 2016 в 07:28
  • 2
    @hobailey Теперь он может получить токен доступа, чтобы увеличить лимит скорости, а также получить доступ к частным репозиториям. – Kino 5 June 2016 в 01:37
  • 3
    @MYounas См. Главы OAuth, Trees, Blobs в Github API Doc. , а также использовать библиотеки JSZip, FileSaver.js js для реализации gitzip. – Kino 25 August 2016 в 04:02
  • 4
    Кто-нибудь б интересовался расширением chrome, которое это делает? – goldylucks 26 January 2017 в 11:07
  • 5
    Это действительно нужно добавить на фактический сайт github, это чрезвычайно полезно. – rolls 19 October 2017 в 03:14

1.Щелкните по этой ссылке http://kinolien.github.io/gitzip/ 2. Вставьте ссылку на папку Github, которую вы хотите загрузить. 3.Щелкните в поиске, он отобразит все файлы для загрузки. Примечание: -Используя поиск, нет необходимости вводить ключ маркера;) .. держите его простым (y)

11
ответ дан M Younus 16 August 2018 в 05:16
поделиться

Чтобы экспортировать каталог из GitHub, замените «/ tree / master /» в URL-адрес каталога «/trunk/".

Например, чтобы экспортировать каталог со следующего URL-адреса:

https://github.com/liferay/liferay-plugins/tree/master/portlets/sample-hibernate-portlet

выполните следующую команду:

svn export https://github.com/liferay/liferay-plugins/trunk/portlets/sample-hibernate-portlet
1
ответ дан Martijn Pieters 16 August 2018 в 05:16
поделиться

Вы не можете; в отличие от Subversion, где каждый подкаталог может быть проверен отдельно, Git работает на основе целых репозиторий.

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

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

Edit - GitHub фактически предлагает доступ через SVN, что позволит вам сделать именно это (согласно комментарию). См. https://github.com/blog/1438-improved-svn-here-to-stay-old-svn-going-away для получения последних инструкций о том, как это сделать

15
ответ дан michel-slm 16 August 2018 в 05:16
поделиться

Перейти к DownGit > Ввести URL-адрес> Загрузить!

Теперь вы можете СКАЧАТЬ DOWNLOAD или создать DOWNLOAD LINK для любого общего каталога или файла GitHub (особенно file ) из DownGit ! Простая демонстрация -



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

287
ответ дан Minhas Kamal 16 August 2018 в 05:16
поделиться
  • 1
    Бро, я имею в виду, как создать проект, такой как DownGit, который вы создали. – M Younus 20 August 2016 в 09:44
  • 2
    Базовый метод: 1. взять ссылку на каталог (используется угловой маршрут ), 2. перейти к GitHub API , 3. искать в каталоге и загружать все файлы, 4. Создайте с ним zip-файл (я использовал jszip ) & amp; сохраните его как файл (для этого используется файловый менеджер ). Для ясного понимания я хотел бы предложить посмотреть мой проект . – Minhas Kamal 20 August 2016 в 10:06
  • 3
    thanx Bro для подробных инструкций, я очень благодарен вам, если вы предлагаете какой-либо учебник или ссылку. – M Younus 20 August 2016 в 12:36
  • 4
    Спасибо, много ... отлично работает ... !!! – varotariya vajsi 11 April 2017 в 13:12
  • 5
    Это классно, но он не работает с автоматическими инструментами (например, wget) – Ring 25 January 2018 в 22:10
  • 6

Обновление: сентябрь 2016 года: существует несколько инструментов, созданных сообществом, которые могут сделать это для вас:


Git не поддерживает это, но Github делает через SVN. Если вы проверите свой код с помощью subversion, Github по существу преобразует репо из git в subversion на бэкэнд, а затем обслуживает запрошенный каталог.

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

  1. Получите URL-адрес репо. Сначала скопируйте URL-адрес репозитория Github в буфер обмена.
  2. Измените URL-адрес для подрывной деятельности. Я хочу загрузить папку в /docs из ветки master, поэтому добавлю trunk/docs. Полный URL-адрес теперь https://github.com/lodash/lodash/trunk/docs. См. Мою заметку ниже для более подробного объяснения того, почему мы должны использовать этот формат URL.
  3. Загрузите папку. Перейдите в командную строку и возьмите папку с SVN. svn checkout https://github.com/lodash/lodash/trunk/docs

Вы можете не видеть никакой активности сразу, потому что Github занимает до 30 секунд, чтобы конвертировать большие репозитории, поэтому будьте терпеливы.

Полное описание формата URL:

  • Если вас интересует ветка master, вместо этого используйте trunk. Таким образом, полный путь trunk/foldername
  • Если вас интересует ветка foo, вместо этого используйте branches/foo. Полный путь выглядит как branches/foo/foldername
  • Protip: вы можете использовать svn ls для просмотра доступных тегов и ветвей перед загрузкой, если хотите

. Это все! Github также поддерживает дополнительные функции subversion , включая поддержку для фиксации и нажатия изменений.

666
ответ дан nick 16 August 2018 в 05:16
поделиться
  • 1
    Awesome, просто замените tree/master на trunk, и вы можете получить конкретную папку. – Sérgio Michels 6 December 2013 в 19:18
  • 2
    Спасибо @ user1146881 и @ SérgioMichels, вы должны заменить tree/master на trunk. Эта информация должна быть добавлена ​​в ответ. – baptx 18 December 2013 в 19:25
  • 3
    Я изменил это, чтобы использовать svn export, поскольку мне не нужна рабочая копия Subversion. Затем я добавил результирующую папку в Git. (Я как-то потерял большую часть моего дерева каталогов, поэтому я экспортировал из репо, которое я разветвил.) – Grault 18 December 2013 в 20:34
  • 4
    @ num3ric- извините за поздний ответ, но вы должны иметь возможность заменить "trunk" с "branch / yourbranch" – nick 25 October 2014 в 22:49
  • 5
    @ElijahLynn Спасибо за редактирование, я должен был включить эту информацию! 2 вещи, хотя ... я принял ваше редактирование, но откинул часть своих (имел смысл делать это в любом случае, это было слишком грязно). Кроме того, я изменил ваш путь branch на branches, который I think правильный; если нет, продолжайте и измените его. – nick 20 October 2015 в 01:53

Если вам нужно сделать это программно, и вы не хотите полагаться на SVN, вы можете использовать API GitHub для рекурсивно загружать все содержимое.

Для вдохновения вот мой рубиновый смысл: https://gist.github.com/cvengros/b2a7e82f66519d423b6f

1
ответ дан pcv 16 August 2018 в 05:16
поделиться

Это одно из немногих мест, где SVN лучше Git.

В итоге мы тяготели к трем вариантам:

  1. Используйте wget для захвата данных из GitHub (с использованием представления необработанного файла).
  2. Предложите, чтобы проекты с восходящим потоком публиковали требуемый подмножество данных в качестве артефактов сборки.
  3. Откажитесь и используйте полную проверку. Это большой удар по первой сборке, но если вы не получите много трафика, это не слишком сложно в следующих сборках.
7
ответ дан Peter Mortensen 16 August 2018 в 05:16
поделиться
  • 1
    Ну, это меньше, чем Git vs Subversion, и больше того, что GitHub не позволяет git-архив. (Я хотел бы знать, почему.) – Rob Howard 27 September 2013 в 12:24

Для Generic git Repo:

Если вы хотите загружать файлы, не клонируйте репозиторий с историей, вы можете сделать это с помощью git-archive.

git-archive делает сжатый zip-архив или tar-архив репозитория git. Некоторые вещи, которые делают его особенным:

  1. Вы можете выбрать файлы или каталоги в архиве git для архивации.
  2. Он не архивирует папку .git/ или любые неископанные файлы в репозитории, на которых он запущен.
  3. Вы можете архивировать определенную ветку, тег или фиксацию. Проекты, управляемые с помощью git, часто используют это для создания архивов версий проекта (бета, выпуск, 2.0 и т. Д.) Для загрузки пользователями.

Пример создания архива docs/usage из удаленного репо, с которым вы подключены с помощью ssh:

# in terminal
$ git archive --format tar --remote ssh://server.org/path/to/git HEAD docs/usage > /tmp/usage_docs.tgz

Дополнительная информация в в этом сообщении в блоге и git documentation .

Примечание по GitHub Repos:

GitHub не разрешает доступ git-archive к . ☹️

54
ответ дан RobW 16 August 2018 в 05:16
поделиться

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

Как загрузить одну папку из репозитория github (Mac OS X):

~ Чтобы открыть терминал, просто нажмите прожектор и введите терминал, затем нажмите enter

  1. . На Mac у вас, вероятно, уже есть SVN (для проверки только открытого терминала и типа «svn» или «which svn» ~ без меток кавычек)
  2. В Github: найдите путь Github в вашей папке git (а не в репо), нажав на конкретную имя папки в репо
  3. Скопируйте путь из адресной строки браузера
  4. Откройте терминал и введите: svn export
  5. Затем вставьте адрес (например, .): https://github.com/mingsai/Sample-Code/tree/master/HeadsUpUI
  6. Заменить слова: tree / master
  7. со словом: trunk
  8. Введите целевую папку для файлов (в этом примере я храню целевую папку insi de в папке «Загрузка» для текущего пользователя)
  9. Здесь пробел - это пробел, а не слово (пробел) ~ / Downloads / HeadsUpUI
  10. Последняя команда терминала показывает полную команду скачать папку (сравнить адрес с шагом 5) svn export https://github.com/mingsai/Sample-Code/trunk/HeadsUpUI ~ / Downloads / HeadsUpUI

BTW. Если вы находитесь на Windows или какой-либо другой платформе, вы можете найти бинарную загрузку подрывной деятельности (svn) в http://subversion.apache.org

~ Если вы хотите проверить папку, а не просто загрузить ее, попробуйте использовать справку svn (tldr: replace export checkout)

Обновить

Относительно комментария при возобновлении прерывания загрузки / проверки. Я попробую запустить svn cleanup, а затем svn update. Пожалуйста, найдите SO для дополнительных опций.

19
ответ дан Tommie C. 16 August 2018 в 05:16
поделиться
  • 1
    Мне нужно загрузить много файлов из определенной папки и получить эту ошибку в середине загрузки: svn: E175002: REPORT of '/ bgmartins / scripts-parlamento /! Svn / vcc / default': 200 OK ( github .com ) Как вы можете возобновить загрузку? – Miguel 7 June 2017 в 21:56
  • 2
    – Kalpesh Soni 30 August 2018 в 16:46

Я использую linux так, поместите это в ~ / .bashrc, названный even: D $ HOME / .bashrc

git-dowloadfolder(){
a="$1"
svn checkout ${a/tree\/master/trunk}

}

, затем обновите оболочку с помощью

source ~/.bashrc 

затем используйте его с git-downloadfolder blablabla: D

1
ответ дан user1088530 16 August 2018 в 05:16
поделиться

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

33
ответ дан VahidN 16 August 2018 в 05:16
поделиться
  • 1
    Отлично работает, если вам нужно только скачать папки из GitHub. Для загрузки нужной папки требуется только Github Token . Более высокие показатели могут дать этому ответу определенное значение. – Alex Essilfie 19 November 2015 в 08:31
  • 2
    Что делать, если мы работаем над linux? – Fredrick Gauss 31 May 2018 в 06:40

Существует пакет Python3 pip, называемый githubdl, который может это сделать *:

export GIT_TOKEN=1234567890123456789012345678901234567890123
pip install githubdl
githubdl -u http://github.com/foobar/test -d foo

* Отказ от ответственности: я написал этот пакет.

1
ответ дан Willem van Ketwich 16 August 2018 в 05:16
поделиться

Наша команда написала сценарий bash, чтобы сделать это, потому что мы не хотели устанавливать SVN на нашем сервере с пустыми костями.

https://github.com/ojbc/docker /blob/master/java8-karaf3/files/git-download.sh

Он использует API github и может запускаться из командной строки следующим образом:

git-download.sh https://api.github.com/repos/ojbc/main/contents/shared/ojb-certs
2
ответ дан Yogesh Chawla 16 August 2018 в 05:16
поделиться

Еще один конкретный пример:

Как я хочу загрузить папку «iOS Pro Geo» из URL

https://github.com/alokc83/APRESS- Books-Source-Code - / tree / master /% 20Pro% 20iOS% 20Geo

, и я могу сделать это через

svn checkout https://github.com/alokc83/APRESS-Books-Source-Code-/trunk/%20Pro%20iOS%20Geo

Обратите внимание на соединительную линию на пути

Отредактировано: (согласно комментарию Tommie C)

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

svn export https://github.com/alokc83/APRESS-Books-Source-Code-/trunk/%20Pro%20iOS%20Geo

Отредактировано: если дерево / мастер отсутствует в URL-адресе, то вилка его, и он будет там в Forked url.

7
ответ дан zeeawan 16 August 2018 в 05:16
поделиться
  • 1
    Просто нужно изменить выписку для экспорта, если вы просто хотите загрузить копию папки, а не проверку. – Tommie C. 13 September 2015 в 00:14
  • 2
    Спасибо за ваш ответ, можем ли мы погрузиться в филиал? скажем, я хочу загрузить папку aaa для ветки feature1 – hsafarya 10 November 2016 в 15:05
0
ответ дан Albin 6 September 2018 в 03:58
поделиться
0
ответ дан HappyFace 29 October 2018 в 10:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: