¿Cómo combino dos repositorios de Git, uno una instantánea del otro con el historial actual?

Necesito hacer lo contrario deesta pregunta.

Así que hace casi un año separamos nuestro repositorio Git de sí mismo copiando el estado actual de ambas ramas en un nuevo repositorio. Para hacerlo simple:

<== 2015 Dec              1 Jan                    2016 Jan ==>
Past history, till SVN    New Repo First Commit    All commits to present

Pronto usaremos subárboles para convertir cada uno de los proyectos en este repositorio en su propio repositorio Git, pero no quiero hacerlo mientras falten 5 años de nuestro historial de compromisos en nuestro repositorio central. Estos son los pasos que he probado hasta ahora:

cd ProjectFull/
git reset --hard # Project was in a branch
git checkout master # Go to master before trying to rebase
git remote add ProjectSplit ../ProjectSplit # New repository is in another directory
git fetch ProjectSplit # Fetch new repository
git cherry-pick <initial commit hash> --strategy-option theirs
git pull --rebase -s recursive -X theirs origin master

Mi idea era elegir el compromiso inicial del nuevo repositorio y luego eliminarlo de ese compromiso, pero eso falla. Los comandos que he enumerado anteriormente no tienen errores, pero eliminan todo el historial del antiguo repositorio.

Aquí hay un registro truncado de mi rebase Git:

$ git rebase origin dev
First, rewinding head to replay your work on top of it...
Applying: Merge branch 'dev' of <REPO> into dev
Using index info to reconstruct a base tree...
<stdin>:298480: trailing whitespace.

<stdin>:298553: trailing whitespace.

<stdin>:298559: trailing whitespace.

<stdin>:298565: trailing whitespace.

<stdin>:298571: trailing whitespace.

warning: squelched 1751272 whitespace errors
warning: 1751277 lines add whitespace errors.
Falling back to patching base and 3-way merge...

CONFLICT (add/add): Merge conflict in <FILE>
Auto-merging <FILE>
CONFLICT (add/add): Merge conflict in <FILE>
Auto-merging <FILE>
CONFLICT (add/add): Merge conflict in <FILE>
Auto-merging <FILE>
CONFLICT (add/add): Merge conflict in <FILE>
Auto-merging <FILE>
CONFLICT (add/add): Merge conflict in <FILE>
Auto-merging <FILE>
<Same>

Failed to merge in the changes.
Patch failed at 0001 Merge branch 'dev' of <REPO> into dev
The copy of the patch that failed is found in:
   ProjectFull/.git/rebase-apply/patch

When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".

La secuencia de comandos en esta respuesta falló a la mitad de los parches del viejo repositorio.

Esta respuesta solo funciona para repositorios diferentes.

Respuestas a la pregunta(1)

Su respuesta a la pregunta