Supponi di voler trasferire la cronologia di filename.conf
da un repository di origine a un altro repository di destinazione. Penso che la strategia che vuoi seguire sia:
- Nel repository di origine, crea un ramo di commit che vengono riscritti per contenere solo
filename.conf
. - Unisci la linea indipendente di commit in un ramo normale nel repository ricevente.
Sicuramente fai dei backup dei tuoi repository prima di farlo!
Nel repository di origine, usa filter-branch per ricostruire la cronologia rimuovendo tutto tranne filename.conf
.
git checkout -b filtered-commits
git filter-branch -f --prune-empty --tree-filter 'find . -not -name filename.conf -exec rm {} \;' filtered-commits
Quindi, nel repository ricevente:
git pull path/to/source/repo
Se hai anche bisogno di spostare il percorso che filename.conf
è all'interno del repository, probabilmente dovrai usare il --subdirectory-filter
opzione su git filter-branch
.