Saya menambahkan lebih dari 9000 foto secara tidak sengaja ke folder proyek saya. Dan berkomitmen pada mereka. Kemudian hapus dari disk. Berkomitmen.
Sekarang saya mencoba untuk mendorong perubahan ke server git. Tapi butuh waktu terlalu lama dan mencoba mengirim 12 Gb data.
Saya memeriksa ukuran file pada disk dan melihat bahwa .git
folder sebenarnya membutuhkan 12 Gb.
Bagaimana cara menghapus foto dari sana? Saya mencoba git rm
, tetapi gagal:
❯ git rm public/photos
fatal: pathspec 'public/photos' did not match any files
Karena sudah saya hapus semua dari disk, tapi masih ada di .git
folder.
Saya mencoba menambahkan public/photos
ke .gitignore
:
public/photos/
*.zip
Tapi tidak ada hasil. Tentu saja saya bisa hard reset head
untuk momen ketika saya tidak memiliki begitu banyak foto sampah dalam proyek saya. Tetapi sejak saat itu saya berkomitmen berkali-kali dan membuat banyak perubahan pada kode.
sumber
git add .gitignore && commit -m "ignore rule for photos"
harusgit add .gitignore && git commit -m "ignore rule for photos"
Jawaban yang sangat sederhana adalah.
Langkah 1:
Pertama tambahkan file Anda yang tidak terlacak yang ingin Anda hapus:
menggunakan
git add .
ataugit add <filename>
.Langkah 2:
Kemudian hapus dengan mudah menggunakan perintah di
git rm -f <filename>
sini rm = hapus dan -f = paksa.sumber
git filter-branch
seperti yang disebutkan di tempat lain.Langkah 1
Tambahkan nama file ke
.gitignore
file Anda .Langkah 2
LANGKAH 3
Terima kasih banyak untuk @mu.
sumber
--ignore-unmatch
menggunakan ini berhasil untuk saya
sumber
Rantai ini berfungsi dalam kasus saya:
git rm -r WebApplication/packages
Ada git-dialog konfirmasi. Anda harus memilih opsi "y".
git commit -m "blabla"
git push -f origin <ur_branch>
sumber
melakukan pekerjaan itu, Ini mengembalikan file yang telah saya hapus menggunakan,
rm
bukangit rm
.Saya pertama kali melakukan pembayaran dari hash terakhir, tetapi saya tidak percaya itu diperlukan.
sumber
Untuk menghapus file komit terlacak dan lama dari git Anda dapat menggunakan perintah di bawah ini. Di sini, dalam kasus saya, saya ingin membatalkan penelusuran dan menghapus semua file dari
dist
direktori.Kemudian, Anda perlu menambahkannya ke akun Anda
.gitignore
agar tidak terlacak lebih lanjut.sumber
Saya memiliki direktori duplikat (~ web / web) dan menghapus duplikat bersarang ketika saya menjalankannya
rm -rf web
saat berada di dalam folder web pertama.sumber