Asumsikan Anda ingin mentransfer riwayat filename.conf dari satu repositori sumber ke repositori penerima lainnya. Saya pikir strategi yang ingin Anda ikuti adalah:
- Dalam repositori sumber, buat cabang komit yang ditulis ulang agar hanya berisi
filename.conf. - Gabungkan baris komit independen menjadi cabang normal di repositori penerima.
Pasti buat cadangan repositori Anda sebelum Anda melakukan ini!
Di repositori sumber, gunakan cabang-filter untuk membangun kembali riwayat dengan menghapus semuanya kecuali filename.conf .
git checkout -b filtered-commits
git filter-branch -f --prune-empty --tree-filter 'find . -not -name filename.conf -exec rm {} \;' filtered-commits
Kemudian, di repositori penerima:
git pull path/to/source/repo
Jika Anda juga perlu memindahkan jalur yang filename.conf ada di dalam repositori, Anda mungkin perlu menggunakan --subdirectory-filter opsi pada git filter-branch .