← Back to list

Kendime Notlar: Git-There are too many unreachable loose objects

Bugün size üzerinde çalıştığım projede commit atarken karşılaştığım bir hatadan bahsedeceğim. Hata mesajı şu şekildeydi:

F. Zehra ÜN · 2022-11-19 15:46 · 5 claps · 1.2 min read
#türkçe #git #bugs #obje #yazılım
Open on Medium ↗
Wiki topics: 🔓 · Open Source

Kendime Notlar: Git-There are too many unreachable loose objects

Photo by Resource Database™ on Unsplash

Photo by Resource Database™ on Unsplash

Bugün size üzerinde çalıştığım projede commit atarken karşılaştığım bir hatadan bahsedeceğim. Hata mesajı şu şekildeydi:

error: The last gc run reported the following. Please correct the root
cause and remove gc.log.

Automatic cleanup will not be performed until the file is removed.

warning: There are too many unreachable loose objects; run 'git prune'
to remove them.

Git neden böyle bir hata mesajı veriyor?

Git’in otomatik olarak temizlemesi için çok fazla “dangling commit” olduğu için bu hatayı alıyoruz. Peki nedir bu dangling commit dedikleri?

Dangling blob : Staging area’da yapılan ve commitlenmeyen değişikliklerimiz.

Dangling commit : Herhangi bir branchle ilişkisi olmayan, yani tabiri caiz ise havada asılı kalan başıboş commitlerimiz.

Peki asılı duran objelerden kurtulmak için ne yapabiliriz?

  1. git fsck

Bu komut “file system check” in kısaltması olup veritabanındaki nesnelerin bağlantısını ve geçerliliğini doğrular. Böylece dangling commitlerimizi ya da bloblarımızı görebiliriz.

  1. git gc

Normalde git ara ara otomatik olarak "auto gc" adlı bir komutu çalıştırır. Çoğu zaman, bu komut hiçbir şey yapmaz. Ancak çok fazla asılı objemiz varsa Git, git gc komutu başlatır. "gc", (garbage collection) anlamına gelir, tüm asılı objeleri toplar ve herhangi bir committen erişilemeyen bu objeleri ortadan kaldırır.

Aslında git gc sahne arkasında git prune, git repack, git pack and git rerere gibi bir dizi alt komutlar çalıştırarak gereksiz dosyalarımızı temizler ve local repomuzu optimize etmeye yardımcı olur.

Referanslar:

https://stackoverflow.com/questions/18514659/what-is-a-dangling-commit-and-a-blob-in-a-git-repository-and-where-do-they-come

https://git-scm.com/book/en/v2/Git-Internals-Maintenance-and-Data-Recovery


메타데이터
post_id
201eab5bde2f
slug
kendime-notlar-git-there-are-too-many-unreachable-loose-objects-201eab5bde2f
url
https://medium.com/@zehraworks/kendime-notlar-git-there-are-too-many-unreachable-loose-objects-201eab5bde2f
canonical_url
https://medium.com/@zehraworks/kendime-notlar-git-there-are-too-many-unreachable-loose-objects-201eab5bde2f
author_url
https://medium.com/@zehraworks
status
ok
fetched_at
2026-07-26 11:11:10