Проверка ветвей репозитория git в подпапках?

Можно ли взять репозиторий (типа CakePHP1.x@http://github.com/cakephp/cakephp1x) и извлекать мастер плюс ветки в подпапки?

Например, моя желаемая структура папок будет такой:

тортphp1.x

|------ 1.2

|------ 1.3

|------ мастер

Я знаю, что вы можете использовать git checkout -t origin/branch для переключения между ветвями из клонированного репозитория, но мне было интересно, есть ли способ сделать это без необходимости клонировать репозиторий и повторно переименовывать его. .


person BeesonBison    schedule 14.01.2010    source источник


Ответы (3)


Вы можете сделать что-то вроде этого:

mkdir cakephp
cd cakephp
git clone git://github.com/cakephp/cakephp1x.git master
cd master
git checkout -t origin/1.2
git checkout -t origin/1.3
cd ..
git clone master 1.2
git clone master 1.3
cd 1.2
git checkout -t origin/1.2

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

person Greg Hewgill    schedule 14.01.2010
comment
Спасибо, это именно то, чего я хотел добиться. Однако мне было интересно - если я выполню "git pull" на мастере, это отлично работает - как я буду получать обновления в ветках 1.2/1.3? - person BeesonBison; 14.01.2010
comment
После выполнения git pull на главном сервере выполните git pull на ветвях 1.2/1.3, которые будут извлекаться из главного (из-за их отслеживающих ветвей). Или вы можете добавить github в качестве нового удаленного в репозитории веток и напрямую извлекать. Git похож на Perl — есть несколько способов сделать это! - person Greg Hewgill; 14.01.2010

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

person Antony Hatchkins    schedule 14.01.2010

Как-то связано с этим?!

person Stefan Näwe    schedule 14.01.2010