¿Cómo agrego repositorys github existentes a un nuevo repository? Esto no es "fusionar", ya que mi intención es agregar files de un repository existente a un nuevo repository conservando la estructura de carpetas y el historial de todos los files.
Tengo 3 repositorys diferentes
github.com/foo/1.git github.com/foo/2.git github.com/foo/3.git
Cada uno de ellos tiene un set de carpetas y files.
Estoy creando algo nuevo llamado 4 (github.com/foo/4.git) donde quiero agregar los repos existentes.
Hice algo como esto:
git clone github.com/foo/4.git git clone github.com/foo/1.git cd 4 git remote add 1 ../1 git fetch 1 git branch 1-master 1/master git merge 1-master
Después de comprometerme, lo que encontré fue que los files y las carpetas de 1 se copyron directamente en 4.
Digamos que tengo abc.txt en 1, luego terminé viendo abc.txt en 4.
Lo que realmente quiero ver es 4/1 / abc.txt que 4 / abc.txt con el historial de abc.txt preservado.
¿Cómo hago esto?
En una nota lateral, leí este artículo antes de empezar a trabajar en agregar: http://blog.caplin.com/2013/09/18/merging-two-git-repositories/
Desea fusionarse en las historias completas de los otros repos, pero después de reescribirlos para mover sus historias completas en subcarpetas.
Para eso sirve git filter-branch
.
Para cada subrepo:
git merge
o (si también desea reescribir el historial del maestro) git rebase
el git rebase
recuperado (y ya reescrito) en la twig principal del maestro.