2010-01-14 21 views
4

Est-il possible de prendre un dépôt (tel que CakePHP1.x @http://github.com/cakephp/cakephp1x) et vérifier les branches de master plus dans des sous-dossiers?Extraire les branches d'un dépôt git dans des sous-dossiers?

Par exemple, ma structure souhaitée du dossier serait comme ceci:

cakephp1.x

| ------ 1.2

| ------ 1.3

| ------ maître

Je sais que vous pouvez utiliser git checkout -t origine/branche pour basculer entre les branches d'un dépôt cloné, mais je me demandais s'il y avait un moyen de faire ce qui précède sans avoir à cloner le dépôt et renommer à plusieurs reprises.

Répondre

6

Vous pourriez faire quelque chose comme ceci:

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 

Les deux opérations git clone locales seront très rapides car ils utiliseront des liens difficiles à partager la plupart des données du référentiel.

+0

Merci, c'est exactement ce que je voulais réaliser. Je me demandais si - si je fais un 'git pull' sur le master, cela fonctionne très bien - comment pourrais-je tirer les mises à jour sur les branches 1.2/1.3? – BeesonBison

+0

Après avoir fait un 'git pull' sur le master, faites un' git pull' sur les branches 1.2/1.3, qui vont tirer de master (à cause de * leurs * branches de tracking). Ou, vous pouvez ajouter github comme une nouvelle télécommande aux dépôts de branche et tirer directement. Git est comme Perl - il y a plus d'une façon de le faire! –

+0

Merci beaucoup Greg! – BeesonBison

0

cloner le dépôt n'est pas une très grosse affaire. Si cela se passe sur un système de fichiers local, la plupart du contenu du référentiel est cloné via des liens durs.

0

En quelque sorte en relation avec this?!