rama - git: ¿cómo combinar las confirmaciones de un control remoto a una ruta diferente?
git pull (3)
Aquí hay una versión wiki de la comunidad de su respuesta si desea aceptarla como la respuesta.
Esto responde mi pregunta:
http://www.kernel.org/pub/software/scm/git/docs/howto/using-merge-subtree.html
Tengo un repositorio git con foo remoto.
foo es una aplicación web, contiene algunos archivos y directorios directamente en su raíz:
Rakefile
app
...
public
script
Mi repositorio principal de git es un sistema más grande que comprende esta aplicación web. Quiero retirar las confirmaciones 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 un submódulo. Quiero fusionar Foo en el repositorio principal y luego deshacerme de él.
Esto responde mi pregunta:
http://www.kernel.org/pub/software/scm/git/docs/howto/using-merge-subtree.html
Los recursos actualizados para la fusión de subárboles son:
- Git Book capítulo6.7
- Cómo usar la estrategia de combinación de subárbol
- Artículo de GitHub " Trabajar con fusión de subárboles "
Citar de Cómo usar la estrategia de combinación de subárbol :
En este ejemplo, digamos que tiene el repositorio en
/path/to/B
(pero también puede ser una URL, si lo desea). Desea fusionar la rama principal de ese repositorio con el subdirectoriodir-B
en su rama actual.Aquí está 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
Vea también para comentarios el artículo " Subtree fusionando y usted ".