Git Garbage collection doesnt seem to fully work

I’m a little confused as how to completely clean out my garbage…

git count-objects -v -H

  • What can/should I do about this git gc error? (rm: cannot unlink pack Permission denied)
  • How to Prevent Garbage Collection in GIT?
  • git gc --aggressive --prune=all does not remove big file from repository
  • Does Git never delete any information?
  • How to skip “Loose Object” popup when running 'git gui'
  • git gc error: failed to run repack
  • warning: garbage found: ./objects/pack/gc_7174754666377259454.idx_tmp
    warning: garbage found: ./objects/pack/gc_7174754666377259454.pack_tmp
    warning: garbage found: ./objects/pack/pack-f5b13f50fe2e4d773028c51f547822e6f2fe720b.bitmap
    count: 0
    size: 0 bytes
    in-pack: 32986
    packs: 1
    size-pack: 44.14 MiB
    prune-packable: 0
    garbage: 3
    size-garbage: 41.20 MiB
    

    So that implies to me I have 41 megs of garbage in my repo?

    git gc –prune=now –aggressive

    Counting objects: 32986, done.
    Delta compression using up to 8 threads.
    Compressing objects: 100% (31610/31610), done.
    Writing objects: 100% (32986/32986), done.
    Total 32986 (delta 23902), reused 9080 (delta 0)
    

    And when I run count objects again i still have the same output with

        size-garbage: 41.20 MiB
    

    Do I just manually delete the garbage files? At least one is quite plump at the very least.

    12/02/2014  02:06 PM                 0 gc_7174754666377259454.idx_tmp
    12/02/2014  02:06 PM        43,195,455 gc_7174754666377259454.pack_tmp
                   2 File(s)     43,195,455 bytes
                   0 Dir(s)  502,905,999,360 bytes free
    

  • Dynamic version from git with go get
  • Git not showing deleted lines in log
  • Git duplication - receive pack not found
  • npm notice created a lockfile as package-lock.json. You should commit this file
  • Git error: src refspec master does not match any error: failed to push some refs
  • How do I edit an incorrect commit message with TortoiseGit?
  • One Solution collect form web for “Git Garbage collection doesnt seem to fully work”

    C:\Users\VonC\prog\git\git>git log -Ssize-garbage|more
    

    This show the size-garbage output has been introduced in commit 1a20dd4 by Nguyễn Thái Ngọc Duy (pclouds) for git 1.8.3 (May 2013)

    size-garbage: disk space consumed by garbage files, in KiB

    count-objects: report how much disk space taken by garbage files

    Also issue warnings on loose garbages instead of errors as a result of
    using report_garbage() function in count_objects()

    This garbage cleaning tip section mentions:

    To bring the repo size down the bare minimum, you need both the following commands (neither command by itself does the whole job).
    Also Note the lowercase “a” on the “repack“, which says you want to blindly discard unreachable objects instead of keeping them as loose objects.

    git repack -adf     # kills in-pack garbage
    git prune           # kills loose garbage
    

    So try again the git count-objects -v -H after applying both commands.


    Looking at the git repack man page, jthill adds in the comments:

    I prefer the big-A option:

    “Same as -a, unless -d is used.
    Then any unreachable objects in a previous pack become loose, unpacked objects, instead of being left in the old pack.”

    Linus Torvalds argues that -f like gc‘s --aggressive is much overused — so much so he suggested yanking the documentation for it.
    (in 2007)
    (-f is for --no-reuse-delta)

    That means a more efficient combination might be:

    git repack -Ad      # kills in-pack garbage
    git prune           # kills loose garbage
    
    Git Baby is a git and github fan, let's start git clone.