Supposons que vous souhaitiez transférer l'historique de filename.conf
d'un référentiel source à un autre référentiel récepteur. Je pense que la stratégie que vous souhaitez suivre est la suivante :
- Dans le référentiel source, créez une branche de commits qui sont réécrits pour ne contenir que
filename.conf
. - Fusionnez la ligne indépendante de commits dans une branche normale du référentiel de réception.
Assurez-vous de faire des sauvegardes de vos référentiels avant de faire cela !
Dans le référentiel source, utilisez filter-branch pour reconstruire l'historique en supprimant tout sauf filename.conf
.
git checkout -b filtered-commits
git filter-branch -f --prune-empty --tree-filter 'find . -not -name filename.conf -exec rm {} \;' filtered-commits
Ensuite, dans le dépôt de réception :
git pull path/to/source/repo
Si vous devez également déplacer le chemin que filename.conf
se trouve dans le référentiel, vous devrez probablement utiliser le --subdirectory-filter
option sur git filter-branch
.