2008-11-05 13 views
6

Tengo un repositorio de git con foo remoto.git: ¿cómo combinar las confirmaciones de un control remoto a una ruta diferente?

foo es una aplicación web, es contiene algunos archivos y directorios directamente en su raíz:

Rakefile 
app 
... 
public 
script 

Mi principal repositorio Git es un sistema más amplio que comprende esta aplicación web. Quiero sacar los commits de foo, pero necesito que los archivos residan dentro del directorio web. Entonces deberían convertirse en web/app, web/public, etc.

No quiero usar foo como submódulo. Quiero fusionar Foo en el repositorio principal y luego deshacerme de él.

Respuesta

2

Los recursos actualizados para subárbol fusión son:

Cite de How to use the subtree merge strategy:

En este ejemplo, digamos que usted tiene el repositorio en /path/to/B (pero puede ser una URL, así, si lo desea). Quiere fusionar la rama principal de ese repositorio con el subdirectorio dir-B en su rama actual.

Aquí es la secuencia de comandos que necesita:

$ 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 

Ver también para los comentarios del artículo "Subtree merging and you".

Cuestiones relacionadas