Suponha que você queira transferir o histórico de filename.conf
de um repositório de origem para outro repositório de recebimento. Eu acho que a estratégia que você quer seguir é:
- No repositório de origem, crie uma ramificação de confirmações que são reescritas para conter apenas
filename.conf
. - Mesclar a linha independente de confirmações em uma ramificação normal no repositório de recebimento.
Definitivamente, faça backups de seus repositórios antes de fazer isso!
No repositório de origem, use o filtro-branch para reconstruir o histórico removendo tudo, exceto filename.conf
.
git checkout -b filtered-commits
git filter-branch -f --prune-empty --tree-filter 'find . -not -name filename.conf -exec rm {} \;' filtered-commits
Em seguida, no repositório de recebimento:
git pull path/to/source/repo
Se você também precisar mover o caminho em que filename.conf
está dentro do repositório, provavelmente precisará usar a opção --subdirectory-filter
em git filter-branch
.