Suponga que desea transferir el historial de filename.conf
de un repositorio fuente a otro repositorio receptor. Creo que la estrategia que quieres seguir es:
- En el repositorio fuente, cree una rama de confirmaciones que se reescriban para contener solo
filename.conf
. - Fusionar la línea independiente de confirmaciones en una rama normal en el repositorio receptor.
¡Definitivamente haga copias de seguridad de sus repositorios antes de hacer esto!
En el repositorio fuente, usa filter-branch para reconstruir el historial eliminando todo excepto filename.conf
.
git checkout -b filtered-commits
git filter-branch -f --prune-empty --tree-filter 'find . -not -name filename.conf -exec rm {} \;' filtered-commits
Luego, en el repositorio receptor:
git pull path/to/source/repo
Si también necesita mover la ruta que filename.conf
está dentro del repositorio, probablemente necesitará usar el --subdirectory-filter
opción en git filter-branch
.