Angenommen, Sie möchten die Historie von filename.conf
übertragen von einem Quell-Repository zu einem anderen empfangenden Repository. Ich denke, die Strategie, der Sie folgen möchten, ist:
- Erstellen Sie im Quell-Repository einen Zweig von Commits, die so umgeschrieben werden, dass sie nur
filename.conf
enthalten . - Merge die unabhängige Zeile von Commits in einen normalen Zweig im empfangenden Repository.
Erstellen Sie auf jeden Fall Backups Ihrer Repositories, bevor Sie dies tun!
Verwenden Sie im Quell-Repository filter-branch, um den Verlauf neu zu erstellen und alles außer filename.conf
zu entfernen .
git checkout -b filtered-commits
git filter-branch -f --prune-empty --tree-filter 'find . -not -name filename.conf -exec rm {} \;' filtered-commits
Dann im empfangenden Repository:
git pull path/to/source/repo
Wenn Sie auch den Pfad verschieben müssen, der filename.conf
innerhalb des Repositorys befindet, müssen Sie wahrscheinlich den --subdirectory-filter
verwenden Option auf git filter-branch
.