Git geçmişinden dosya temizleme

git, git history, file cleanup

FILENAME=""

git filter-branch --force --index-filter \
"git rm --cached --ignore-unmatch $FILENAME" \
--prune-empty --tag-name-filter cat -- --all

git push origin --force --all
git push origin --force --tags
git for-each-ref --format='delete %(refname)' refs/original | git update-ref --stdin
git reflog expire --expire=now --all
git gc --prune=now
  • FILENAME="" ile temizlemek istediğiniz dosyanın adını belirtin.

  • git filter-branch komutu ile Git geçmişinde belirli bir dosyanın tüm izlerini temizleyebiliriz.

  • -force parametresi, filtre dalının zaten var olduğu durumlarda hata vermemesi için kullanılır.

  • -index-filter parametresi, her bir commit için çalıştırılan komutu belirtir.

  • git rm --cached --ignore-unmatch $FILENAME komutu ile belirtilen dosyanın tüm versiyonlarını kaldırırız.

  • -prune-empty parametresi, dosya değişikliği içermeyen boş commit'leri kaldırır.

  • -tag-name-filter cat -- --all parametresi, tüm dallar ve etiketler üzerinde işlem yapar.

  • git push origin --force --all ve git push origin --force --tags komutları ile değişiklikleri uzak depoya zorla push ederiz.

  • git for-each-ref --format='delete %(refname)' refs/original | git update-ref --stdin komutu ile orijinal referansları sileriz.

  • git reflog expire --expire=now --all ve git gc --prune=now komutları ile git geçmişini temizleriz.

Last updated

© 2024 ~ Yunus Emre Ak ~ yEmreAk