I cannot succeed fixing a git broken link.
Here is the context :
$ git pull
Auto packing the repository in background for optimum performance.
See "git help gc" for manual housekeeping.
warning: The last gc run reported the following. Please correct the root cause
and remove .git/gc.log.
Automatic cleanup will not be performed until the file is removed.
error: inflate: data stream error (unknown compression method)
error: unable to unpack 9a684a736e3b97ff7c709138259196fd223e661c header
fatal: loose object 9a684a736e3b97ff7c709138259196fd223e661c (stored in .git/objects/9a/684a736e3b97ff7c709138259196fd223e661c) is corrupt
fatal: failed to run repack
Already up to date.
$ git fsck
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/9a/684a736e3b97ff7c709138259196fd223e661c
error: 9a684a736e3b97ff7c709138259196fd223e661c: object corrupt or missing: .git/objects/9a/684a736e3b97ff7c709138259196fd223e661c
Checking object directories: 100% (256/256), done.
Checking objects: 100% (5766/5766), done.
Checking connectivity: 12924, done.
dangling tree bd85f5cb37f9545d81b7f923978f97c4eaf391ea
dangling tree 978c24540576bfa8d0e748a33e2457c6286a0d64
dangling blob 0d91b9e2423b61d3f941a3571f08459e3f7db21f
dangling blob 4c4112f5aaa60d99ef2c8a4bb66e855eb1bac7e6
missing tree 9a684a736e3b97ff7c709138259196fd223e661c
$ git cat-file -t 9a684a736e3b97ff7c709138259196fd223e661c
error: inflate: data stream error (unknown compression method)
error: unable to unpack 9a684a736e3b97ff7c709138259196fd223e661c header
fatal: git cat-file: could not get object info
$ du .git/objects/9a/684a736e3b97ff7c709138259196fd223e661c
0 .git/objects/9a/684a736e3b97ff7c709138259196fd223e661c
So I removed this empty file according to this :
$ rm .git/objects/9a/684a736e3b97ff7c709138259196fd223e661c
rm: remove write-protected regular file '.git/objects/9a/684a736e3b97ff7c709138259196fd223e661c'? y
$ git fsck
Checking object directories: 100% (256/256), done.
Checking objects: 100% (5766/5766), done.
broken link from commit fca8efc10a91c7ac2cd0acf5d6744c1cb1ea9765
to tree 9a684a736e3b97ff7c709138259196fd223e661c
Checking connectivity: 12924, done.
dangling tree bd85f5cb37f9545d81b7f923978f97c4eaf391ea
dangling tree 978c24540576bfa8d0e748a33e2457c6286a0d64
dangling blob 0d91b9e2423b61d3f941a3571f08459e3f7db21f
dangling blob 4c4112f5aaa60d99ef2c8a4bb66e855eb1bac7e6
missing tree 9a684a736e3b97ff7c709138259196fd223e661c
So I tried the solutions described here :
$ git gc --aggressive
fatal: bad tree object 9a684a736e3b97ff7c709138259196fd223e661c
fatal: failed to run repack
$ git stash clear
$ git reflog expire --expire-unreachable=now --all
$ git gc --prune=now
fatal: bad tree object 9a684a736e3b97ff7c709138259196fd223e661c
fatal: failed to run repack
$ git fsck --name-objects
Checking object directories: 100% (256/256), done.
Checking objects: 100% (5766/5766), done.
broken link from commit fca8efc10a91c7ac2cd0acf5d6744c1cb1ea9765 (~11)
to tree 9a684a736e3b97ff7c709138259196fd223e661c (~11:)
Checking connectivity: 12924, done.
dangling tree bd85f5cb37f9545d81b7f923978f97c4eaf391ea
dangling tree 978c24540576bfa8d0e748a33e2457c6286a0d64
dangling blob 0d91b9e2423b61d3f941a3571f08459e3f7db21f
dangling blob 4c4112f5aaa60d99ef2c8a4bb66e855eb1bac7e6
missing tree 9a684a736e3b97ff7c709138259196fd223e661c (~11:)
$