2010-01-14 4 views
4

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

Например, моя желательно структура папок будет выглядеть так:

cakephp1.x

| ------ 1,2

| ------ 1,3

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

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

ответ

6

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

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 операции будут очень быстро, потому что они будут использовать жесткие ссылки разделить большую часть данных в хранилище.

+0

Спасибо, это именно то, чего я хотел достичь. Мне было интересно, хотя, если я сделаю «git pull» на хозяине, это отлично работает - как я могу вытащить обновления на ветвях 1.2/1.3? – BeesonBison

+0

После выполнения 'git pull' на master, сделайте' git pull' на ветвях 1.2/1.3, которые будут тянуть от мастера (из-за * их * ветвей отслеживания). Или вы можете добавить github в качестве нового пульта в репозитории филиалов и напрямую вытащить. Git похож на Perl - есть более чем один способ сделать это! –

+0

Большое спасибо Грег! – BeesonBison

0

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