0

我无法成功修复 git 断开的链接。

这是上下文:

$ 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

所以我根据这个删除了这个空文件:

$ 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

所以我尝试了这里描述的解决方案:

$ 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:)
$
4

0 回答 0