Git экспортировать напрямую из происхождения

Я хотел бы создать простой скрипт, который будет загружать плагины из удаленных репозиториев в каталог. У меня есть массив URL-адресов для файлов Git на удаленном сервере — как этот из GitHub https://github.com/nette/sandbox.git. GitHub поддерживает загрузку ZIP-архивов, но у меня есть плагины из много других репозиториев который не предлагает эту опцию.

Возвращаясь к моему вопросу — есть ли вариант, как получить архив вместо загрузки полного репозитория и экспорта из него архива, используя git в командной строке? Я нашел этот вопрос — Сделать "мерзавец экспорт" (лайк "SVN экспорт")? — но это не было бы возможно при использовании PHP.

0

Решение

этот сообщение дает вам подробную информацию об экспорте Git, как вы упомянули.

git archive HEAD —format = zip> archive.zip

Вы также можете заархивировать пульт, используя опцию —remote =. Просто
Имейте в виду, что это не работает с пультами GitHub, так как они
Рекомендуем использовать вместо этого кнопку загрузки. С любым другим
хотя он должен работать нормально, и проверьте страницу руководства, если вы
возникли проблемы.

но проблема с этим методом, когда я попробовал его с обоими GitHub а также bitbuck я получил remote doesn't support protocol ошибка .


Я просто написал код для общего решения на моей машине, и он работает для меня. позвольте мне поделиться с вами. Вы можете выполнить команду оболочки, используя php используя shell_exec .

<?php

//clearing a folder named test if it exist(avoiding git errors)
shell_exec('rm -rf test');

//cloning into test folder
shell_exec('git clone https://github.com/nette/sandbox.git test');

//archiving
shell_exec('cd test && git archive HEAD --format=zip > archive.zip');

//copying to root folder
shell_exec('cp test/archive.zip archive.zip');

//removing the temp test folder we created
shell_exec('rm -rf test');

?>

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector