Baru-baru ini saya sedang mengerjakan proyek di tempat yang melibatkan pengunggahan file besar (› 50 MB). Ketika saya mencoba untuk mendorong perubahan ke cabang asal saya yang jauh, saya menerima pesan berikut:

Menghapus file dari repositori lokal Anda tidak akan membantu karena file itu sendiri meninggalkan jejak dalam sejarah.

Ada beberapa cara untuk memperbaiki masalah ini. Anda dapat menggunakan Git Large File Storage ("git-lfs.github.com") atau menggunakan perintah yang disarankan di halaman bantuan GitHub ("help.github.com/en/github/managing-large-files/removing-files-from- a-repositori-sejarah»).

Saya menggunakan perintah rebase yang dapat digunakan untuk menulis ulang riwayat repositori. Ingatlah untuk memiliki cadangan repositori tempat Anda akan menjalankan perintah jika terjadi kesalahan.

  1. Periksa riwayat Anda untuk melihat file mana yang mungkin melanggar batas maksimum 100MB. Dalam kasus saya, itu adalah file mp4 berikut:
    git log — nama-status — semua

2. Temukan id komit pertama sebelum komit yang menambahkan file. Dalam kasus saya: 7c0a5fae

3. Jalankan:

git rebase -i <commit id>
In my case git rebase -i 7c0a5fae

Ubah 'pilih' menjadi 'edit' untuk semua komitmen yang menyentuh file ofensif Anda.

4. Untuk setiap penerapan yang Anda pilih pada langkah sebelumnya, git rebase akan membuat ulang cuplikan dan memungkinkan Anda mengedit penerapan tersebut. Ulangi terus langkah-langkah di bawah ini hingga rebase Anda selesai:

git rm <your file> 
git commit --amend # this will overwrite the original commit
git rebase --continue

Note: you might get conflicts as you continue with your rebase, resolve them the usual way.

5. Setelah menghapus semua file › 50MB dari riwayat Anda, Anda akhirnya dapat mendorong!

6. Sukses!