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

0

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

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

Теги:
zip
archive

1 ответ

0

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

git архив HEAD --format = zip> archive.zip

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

но проблема с этим методом заключается в том, что, когда я попробовал его с помощью github и bitbuck, я получил remote doesn't support protocol доступ remote doesn't support protocol ошибку 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 safemode. вам может потребоваться установка соответствующих разрешений для скрипта и т.д. но я думаю, что это идея начать с php, чтобы получить то, что вы хотите.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню