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
.