2013-12-09 2 views
2

Я часто создаю серверы, где целью является установка некоторого программного обеспечения, которое хранится в Github. Процесс идет:Оформить заказ филиал от Github без клонирования всего репо, и без Git

  1. Установить Git.
  2. Клон Github репо.
  3. Оформить заказ на правильную ветку.

Шаги 1 и 2 могут быть довольно медленными (несколько минут). Есть ли какие-нибудь инструменты, которые позволили бы мне перейти к преследованию, шаг 3? Я имею в виду что-то вроде:

  1. Получить gitcheckout инструмента (Баш скрипт)
  2. Он непосредственно рушит соответствующие файлы из правой ветви в Github.
+2

Github предлагает загрузки филиалов в виде архива. Это то, что вы ищете? –

+1

Вы можете использовать wget для удаления zip всего репозитория, но вы не можете загружать отдельные части, поэтому в большинстве проектов вы загрузите много дополнительных данных (ненужные ветки и т. Д.) – Lenny

ответ

2

Если вы хотите использовать ублюдок, и если ваш мерзавец новый достаточно иметь --single-branch:

git clone --single-branch --branch=<branch> --depth=1 

В противном случае, вы можете загрузить исходный код в zip:

wget https://github.com/<user>/<project>/archive/<branch>.zip 
+0

Perfect - я не знал вы могли бы сделать это. Кажется, я помню один раз, ища эквивалент «-раздельной ветви», и он определенно не существует. –

+0

После нескольких экспериментов wget работает быстрее, но с возможным недостатком, в котором вы вообще не выполняете git-репо - какие другие скрипты и т. Д. Могут ожидать. –

1
  1. Вы можете получить tarball с использованием API GitHub, а затем вы можете получить ветку и извлечь ее за один раз:

    curl -u USER:TOKEN https://api.github.com/repos/USER/REPO/tarball/BRANCH -L | tar zt 
    

    Вы можете создать свой токен, выполнив следующие шаги: this page. Это достаточно легко сделать.

  2. Или вы могли бы получить подкаталог с помощью svn:

    svn checkout https://github.com/USER/REPO/branches/BRANCH/subdir/you/want 
    

Хорошая вещь об обоих решений является то, что они не загрузить полную историю, только снимок последнего состояния ,

+0

Очень круто - еще два (разных) решения. SVN один из них довольно подлый - но работает, потому что SVN, вероятно, включен в большее количество дистрибутивов, чем Git. –

1

завиток или Wget:

curl -o foo.zip https://github.com/<user>/<project>/archive/<branch>.zip 
wget https://github.com/<user>/<project>/archive/<branch>.zip 

что сказал, по моему опыту, установка мерзавца занимает всего несколько секунд

Смежные вопросы