Saya khawatir saya tidak dapat menemukan sesuatu yang persis seperti skenario khusus ini.
Saya memiliki repositori git dengan banyak riwayat: 500+ cabang, 500+ tag, kembali ke pertengahan 2007. Ini mengandung ~ 19.500 komit. Kami ingin menghapus semua riwayat sebelum 1 Januari 2010, untuk membuatnya lebih kecil dan lebih mudah untuk ditangani (kami akan menyimpan salinan lengkap dari sejarah dalam repositori arsip).
Saya tahu komit yang saya inginkan telah menjadi root dari repositori baru. Saya tidak bisa, bagaimanapun, mencari tahu git mojo yang benar untuk memotong repo untuk memulai dengan komit itu. Saya menduga beberapa varian
git filter-branch
akan diperlukan cangkok; itu juga mungkin diperlukan untuk mengobati masing-masing 200 + cabang kami ingin menjaga secara terpisah dan kemudian menambal repo kembali bersama-sama (sesuatu yang saya lakukan tahu bagaimana melakukannya).
Adakah yang pernah melakukan hal seperti ini? Saya mendapat git 1.7.2.3 jika itu penting.
git filter-branch --tag-name-filter cat -- --all
untuk memperbarui tag. Tapi saya juga punya tag lama yang menunjuk ke riwayat lama yang ingin saya hapus. Bagaimana saya bisa menyingkirkan semua tag lama itu? Jika saya tidak menghapusnya, maka riwayat lama tidak hilang dan saya masih bisa melihatnyagitk --all
.