Fusionando dos repositorys git de un compromiso específico

Tengo que hacer una fusión entre repositorys. Estuve trabajando con algunas personas en el proyecto A.

Una vez que terminamos el proyecto A, comenzamos el proyecto B.

El Proyecto B tiene el proyecto A como base así que clonamos A eliminó los files de git y comenzó a trabajar con estos files (realmente no sé por qué lo hicimos, había muchas mejores forms de hacerlo)

Entonces ahora tengo el Proyecto A con todas sus confirmaciones y el Proyecto B con un compromiso inicial que incluye la A completa y las que hicimos trabajando en B

¿Hay alguna posibilidad de mover las confirmaciones del repository B al repository A? (excluyendo el primero que es el proyecto A)

rep A:

a1 --- a2 

rep B:

 b1 --- b2 

El problema aquí es que a2 y b1, aunque tienen el mismo contenido, no son el mismo compromiso ya que tienen diferente ascendencia.

Aquí el ejemplo muy simple que hice, buscando la twig de otro repository. git crea una twig con un punto de ramificación separado:

 mkdir a cd a echo "a1" > asdf.txt git init git add asdf.txt git commit -m"a1" echo asdf2 >> asdf.txt git commit -am"a2" cd .. cp -aab cd b rm -rf .git git init git add asdf.txt echo b1 >> asdf.txt git commit -am"b1" echo b2 >> asdf.txt git commit -am"b2" git log --graph --all --oneline --decorate cd ../a git log --graph --all --oneline --decorate git fetch ../b master:b_branch git log --graph --all --oneline --decorate 

resultados en:

 * 4de3a97 (b_branch) b2 * 34c116e b1 * 4b25afe (HEAD, master) a2 * 7ac42e8 a1 

No se muestra en el git log --graph , pero si visualizas el repository con gitk --all en ese momento, verás que el historial está desconectado.

Desde allí puedes volver a establecer la b_branch de b_branch en el master :

 git checkout b_branch git rebase master 

Lo más probable es que tengas un conflicto por el primer commit de b_branch (que no está en master ), pero después de eso deberías ser bueno. Resuelva el conflicto manualmente, git add el file ofensivo y luego git rebase --continue .