2008-11-05 4 views
6

J'ai un dépôt git avec foo à distance.git: comment fusionner commet d'un distant à un chemin différent?

foo est une application web, est contient des fichiers et répertoires directement dans sa racine:

Rakefile 
app 
... 
public 
script 

Mon principal dépôt git est un système plus vaste qui comprend cette application Web. Je veux tirer les commits de foo, mais j'ai besoin que les fichiers résident dans le répertoire web. Donc ils devraient devenir web/app, web/public, etc.

Je ne veux pas utiliser foo comme sous-module. Je veux fusionner foo dans le dépôt principal et ensuite m'en débarrasser.

Répondre

2

Les ressources mises à jour pour la fusion sous-arbre sont:

Cité de How to use the subtree merge strategy:

Dans cet exemple, disons que vous avez le dépôt à /path/to/B (mais il peut être une URL aussi bien, si vous voulez). Vous souhaitez fusionner la branche principale de ce référentiel au sous-répertoire dir-B de votre branche actuelle.

Voici la séquence de commande dont vous avez besoin:

$ git remote add -f Bproject /path/to/B 
$ git merge -s ours --no-commit Bproject/master 
$ git read-tree --prefix=dir-B/ -u Bproject/master 
$ git commit -m "Merge B project as our subdirectory" 

$ git pull -s subtree Bproject master 

Voir aussi pour commentaires l'article "Subtree merging and you".

Questions connexes