相关疑难解决方法(0)

如何恢复因硬盘故障而损坏的Git对象?

我遇到了硬盘故障导致Git存储库的某些文件损坏.运行时,git fsck --full我得到以下输出:

error: .git/objects/pack/pack-6863e0a0e4b4ded6090fac5d12eba6ca7346b19c.pack SHA1 checksum mismatch
error: index CRC mismatch for object 6c8cae4994b5ec7891ccb1527d30634997a978ee from .git/objects/pack/pack-6863e0a0e4b4ded6090fac5d12eba6ca7346b19c.pack at offset 97824129
error: inflate: data stream error (invalid code lengths set)
error: cannot unpack 6c8cae4994b5ec7891ccb1527d30634997a978ee from .git/objects/pack/pack-6863e0a0e4b4ded6090fac5d12eba6ca7346b19c.pack at offset 97824129
error: inflate: data stream error (invalid stored block lengths)
error: failed to read object 0dcf6723cc69cc7f91d4a7432d0f1a1f05e77eaa at offset 276988017 from .git/objects/pack/pack-6863e0a0e4b4ded6090fac5d12eba6ca7346b19c.pack
fatal: object 0dcf6723cc69cc7f91d4a7432d0f1a1f05e77eaa is corrupted
Run Code Online (Sandbox Code Playgroud)

我有存储库的备份,但包含包文件的唯一备份已经损坏了.所以我认为我必须找到一种方法从不同的备份中检索单个对象,并以某种方式指示Git生成一个只有正确对象的新包.

你能否告诉我如何修复我的存储库?

git corruption data-recovery

92
推荐指数
3
解决办法
9万
查看次数

git移植和替换有何不同?(移植物现在已被弃用吗?)

有极少数的Q&A的上的git graftsreplace.搜索[git] + grafts + replace只发现了两个与5. what-are-git-info-grafts-forgit-what-a-a-graftcommit-or-a-graft-id相关的两个.git.wiki.kernel.org:GraftPoint上还有一个注释

被移植现在完全取代replacefilter-branch,或者他们仍然需要一些特殊的情况(和向后兼容)?

一般来说,它们如何不同(例如哪些在回购之间运输),它们通常是如何相同的?我已经看到Linus似乎并不关心目前在关于提交代数的讨论(最大父母回到任何根种类)的问题"移植已经不可靠了."

编辑:找到更多信息.
搜索www.kernel.org/pub/software/scm/git/docs graft仅找到3个结果:

  1. GIT-滤波器分支(1),
  2. v1.5.4.7/GIT-滤波器分支(1),
  3. v1.5.0.7/GIT-s​​vn的(1).

稍微宽泛的搜索发现RelNotes/1.6.5.txt包含:

  • refs/replace/hierarchy被设计为可用作"移植"机制的替代,其附加优势是它可以跨存储库传输.

不幸的是,gitrepository-layout(5)还没有更新refs/replace/repository布局信息(和注释),也没有任何信息/移植的弃用说明.

这更接近支持我的想法,但我欢迎任何确认或澄清.

git

53
推荐指数
3
解决办法
1万
查看次数

修复损坏的Git存储库

由于电源问题,我的Git存储库在经过几次硬重启后损坏了,现在我无法修复它(我在最后一次电源故障时暂停了一些文件):

$ git status
fatal: failed to read object 3d18855708b0f127d40c13c679559d7679228b69: Invalid argument
$ git fsck
fatal: failed to read object 24377c609184c192f3f3c1733bac7115c1080758: Invalid argument
$ git branch -a
(...works, lists branches...)
$ git checkout someotherbranch
fatal: failed to read object 3d18855708b0f127d40c13c679559d7679228b69: Invalid argument
$ git log
fatal: failed to read object 3d18855708b0f127d40c13c679559d7679228b69: Invalid argument
$ git log someotherbranch
(...works, shows commits...)
Run Code Online (Sandbox Code Playgroud)

所以,正如你所看到的,我当前的分支已经搞砸了,我似乎无法修复它.我可以尝试修复此问题?

git corruption

42
推荐指数
7
解决办法
8万
查看次数

标签 统计

git ×3

corruption ×2

data-recovery ×1