Создать ссылку для скачивания для отдельной папки в GitHub

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

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

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

Если это помогает предоставить конкретный пример, вот папка, которую я хотел бы загрузить по ссылке:
https://github.com/KyleMit/CodingEverything/tree/master/MVCBootstrapNavbar/Источник%20Code

Есть какой-либо способ сделать это?


person KyleMit    schedule 02.05.2014    source источник
comment
В Kino есть проект под названием gitzip, который использует для этого GitHub API, JSZip и FileSaver.js.   -  person KyleMit    schedule 17.11.2015


Ответы (4)


нет, не по прямой ссылке.

«Загрузка» папки из репозитория git означает только разреженную проверку (частичное клонирование).

Любое другое решение действительно означало бы создание артефакта и его загрузку.

Обновление в августе 2016 г. (2 года спустя): вы можете взглянуть на этот ответ и Проект DownGit, автор Минхас Камаль.

person VonC    schedule 03.05.2014
comment
Спасибо! Любопытство: кажется ли гипотетически возможным создать веб-службу, которая будет принимать в качестве параметра URL-адрес каталога или файла, загружать соответствующий репозиторий, заархивировать соответствующие файлы и возвращать их клиенту? - person KyleMit; 05.05.2014
comment
@KyleMit Теоретически да: это то, что GitHub сделал со своей службой загрузки узлов (github.com/blog/678-meet-nodeload-the-new-download-server и github.com/blog/900-nodeload2-downloads-reloaded). В основном это зависит от ожидаемого количества запросов. - person VonC; 05.05.2014
comment
Если я понимаю, артефакт будет означать копию? Значит, коммиты не будут обновлять его автоматически? - person Daniel Springer; 26.05.2017
comment
@DaniSpringer Нет, артефакт - это двоичный файл, который вы создаете из источников: здесь zip-файл из определенной папки из источников. Это означает, что это действительно копия, и коммиты не будут обновлять этот артефакт автоматически. - person VonC; 26.05.2017
comment
@DaniSpringer простой zip, архив исходников. Этот архив - бинарный. - person VonC; 26.05.2017
comment
Я не понимаю. Да ладно ... в любом случае спасибо - person Daniel Springer; 26.05.2017
comment
@DaniSpringer цель - загрузить подпапку с исходными кодами репозитория GitHub. Я предлагаю сжать копию этой подпапки и загрузить ее как выпуск: github. ru / blog / 1547-release-your-software. Таким образом, любой пользователь сможет загрузить эту версию, которая будет представлять собой сжатый zip-архив из подпапки. - person VonC; 26.05.2017
comment
Значит, артефакт - это просто другое слово для обозначения zip-файла? - person Daniel Springer; 26.05.2017
comment
Артефакт @DaniSpringer - это общий термин (en.wikipedia.org/wiki/Artifact_ (разработка_программ)), ссылаясь на все, что вы строите из своих источников. - person VonC; 26.05.2017
comment
Ага. Мне нужно многому научиться. сборка из источников - это общий способ сказать «сделать zip-файл»? (или файл pyc, я думаю?) - person Daniel Springer; 26.05.2017
comment
Создание zip-файла @DaniSpringer - это всего лишь одна из возможностей создания артефакта: это зависит от того, чего вы ожидаете от процесса сборки. В контексте этого вопроса это именно тот артефакт, который вам нужен. Но обычно создание артефакта включает этап компиляции, и в результате получается не zip-архив, а исполняемый файл. - person VonC; 26.05.2017
comment
Как pyc? Итак, чтобы сделать загружаемый выпуск из папки в репо, мне сначала нужно загрузить эту папку и сделать выпуск из нее? Зачем мне делать это собственное репо? - person Daniel Springer; 26.05.2017
comment
@DaniSpringer да: клонируйте все репозитории, создайте zip нужной папки, загрузите ее как релиз (github.com/blog/1547-release-your-software) - person VonC; 26.05.2017
comment
Я пробую. Спасибо! Я просто хочу, чтобы вы знали, что я не задавал больше вопросов, не пытаясь и не разыскивая вещи ... Я знаю, как SO (и мир?) Должен работать. :) - person Daniel Springer; 26.05.2017
comment
Похоже, работает: D Еще раз спасибо! - github.com/DaniSpringer/Projects/releases/latest - person Daniel Springer; 26.05.2017

Перейдите к DownGit ›введите URL› просто скачайте!

Желаемая ссылка для загрузки для https://github.com/KyleMit/CodingEverything/tree/master/MVCBootstrapNavbar/Source%20Code- ЗАГРУЗИТЬ [эта ссылка больше недействительна, поскольку папка репо перемещена]

Подробное описание использования ЗДЕСЬ.


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

person Minhas Kamal    schedule 10.08.2016

Я разработал расширение для Chrome, используя gitzip от KinoLien. Его можно найти здесь.

person charany1    schedule 26.05.2016

https://ghd.one позволяет загружать файлы выпуска, фильтруя их до одного файла. Загрузка исходных файлов состоится в ближайшее время.

Подробнее о GHD на Reddit: https://www.reddit.com/r/programming/comments/o1yit0/ghd_get_github_direct_links_without_pain_wip/

person Gordon Freeman    schedule 17.06.2021