我的电脑突然关机了,现在我工作的项目的 Git 存储库有缺陷。我安装了 Git 2.20.1。我立即创建了项目文件夹的备份副本以使用原始文件夹。我有当地的分支机构,我不想松散。
$ git status
error: object file .git/objects/c7/8e67bcad2ea132e3df8f80bb42b4804ab4f2a3 is empty
fatal: loose object c78e67bcad2ea132e3df8f80bb42b4804ab4f2a3 (stored in .git/objects/c7/8e67bcad2ea132e3df8f80bb42b4804ab4f2a3) is corrupt
Run Code Online (Sandbox Code Playgroud)
短路输出:
$ git fsck --name-objects
error: object file .git/objects/04/f338bf0dc0770b841b291af6cdd4c9130edb84 is empty
error: unable to mmap .git/objects/04/f338bf0dc0770b841b291af6cdd4c9130edb84: No such file or directory
error: 04f338bf0dc0770b841b291af6cdd4c9130edb84: object corrupt or missing: .git/objects/04/f338bf0dc0770b841b291af6cdd4c9130edb84
error: object file .git/objects/2e/07479ec010e5b459387d841a576e1ead97f850 is empty
error: unable to mmap .git/objects/2e/07479ec010e5b459387d841a576e1ead97f850: No such file or directory
error: 2e07479ec010e5b459387d841a576e1ead97f850: object corrupt or missing: .git/objects/2e/07479ec010e5b459387d841a576e1ead97f850
error: object file .git/objects/34/b03409d09382c44f50409e4388850ca9c82c77 is empty
error: unable to mmap .git/objects/34/b03409d09382c44f50409e4388850ca9c82c77: No such file or directory
...
error: object file .git/objects/c7/8e67bcad2ea132e3df8f80bb42b4804ab4f2a3 is empty
error: unable to mmap .git/objects/c7/8e67bcad2ea132e3df8f80bb42b4804ab4f2a3: No such file or directory
error: c78e67bcad2ea132e3df8f80bb42b4804ab4f2a3: object corrupt or missing: .git/objects/c7/8e67bcad2ea132e3df8f80bb42b4804ab4f2a3
error: object file .git/objects/e5/19b2fbf083f68694af97ccddf46bc28c6ee8f7 is empty
error: unable to mmap .git/objects/e5/19b2fbf083f68694af97ccddf46bc28c6ee8f7: No such file or directory
error: e519b2fbf083f68694af97ccddf46bc28c6ee8f7: object corrupt or missing: .git/objects/e5/19b2fbf083f68694af97ccddf46bc28c6ee8f7
error: object file .git/objects/ec/289b8e8d17c47644d5bdbfbfc8b2957d2a430e is empty
error: unable to mmap .git/objects/ec/289b8e8d17c47644d5bdbfbfc8b2957d2a430e: No such file or directory
error: ec289b8e8d17c47644d5bdbfbfc8b2957d2a430e: object corrupt or missing: .git/objects/ec/289b8e8d17c47644d5bdbfbfc8b2957d2a430e
error: object file .git/objects/ed/33778ddc07a26a37c6f200f35ffee12e365ea4 is empty
error: unable to mmap .git/objects/ed/33778ddc07a26a37c6f200f35ffee12e365ea4: No such file or directory
error: ed33778ddc07a26a37c6f200f35ffee12e365ea4: object corrupt or missing: .git/objects/ed/33778ddc07a26a37c6f200f35ffee12e365ea4
error: object file .git/objects/f6/5686bed85025fd7adbf209ba93846b18800d70 is empty
error: unable to mmap .git/objects/f6/5686bed85025fd7adbf209ba93846b18800d70: No such file or directory
error: f65686bed85025fd7adbf209ba93846b18800d70: object corrupt or missing: .git/objects/f6/5686bed85025fd7adbf209ba93846b18800d70
error: object file .git/objects/fd/cdc518b01c670cd38c15903fd3e84554114d38 is empty
error: unable to mmap .git/objects/fd/cdc518b01c670cd38c15903fd3e84554114d38: No such file or directory
error: fdcdc518b01c670cd38c15903fd3e84554114d38: object corrupt or missing: .git/objects/fd/cdc518b01c670cd38c15903fd3e84554114d38
Checking object directories: 100% (256/256), done.
Checking objects: 100% (40855/40855), done.
error: refs/remotes/origin/colors-housekeeping: invalid sha1 pointer 0000000000000000000000000000000000000000
error: bad ref for .git/logs/refs/remotes/origin/colors-housekeeping
error: object file .git/objects/ec/289b8e8d17c47644d5bdbfbfc8b2957d2a430e is empty
fatal: loose object ec289b8e8d17c47644d5bdbfbfc8b2957d2a430e (stored in .git/objects/ec/289b8e8d17c47644d5bdbfbfc8b2957d2a430e) is corrupt
Run Code Online (Sandbox Code Playgroud)
colors-housekeeping是一个已经合并的分支,master之后我已经编辑了其他文件,提交并合并了另一个分支。
我可以采取哪些步骤来修复损坏的对象?
Dre*_*kes 17
当我克隆的存储库将其默认分支从 重命名为 时,我就发生了这种master情况main。
错误是:
错误:refs/remotes/origin/HEAD:无效的 sha1 指针 0000000000000000000000000000000000000000
让我们看看磁盘上的指针文件:
$ cat .git/refs/remotes/origin/HEAD
ref: refs/remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
编辑该文件并替换为 后master,main我再次能够无错误地获取/fsck/gc。
error: unable to mmap...是一个错误,invalid sha1 pointer 000000...是另一个错误。
对于在这里只有 sha1-pointer-error 但没有 mmap-errors 的任何人(像我一样):
sha1-pointer-error 可能意味着预期的指针文件不存在。
refs/remotes/origin/colors-housekeeping可能包含以下内容:
ref: refs/remotes/origin/notexistingbranch
或:
6ca0197d8f15f381d67e3502e678ca3d17dbbea2
但ref找不到此文件 ( ) 或 commit-id。在这两种情况下,您都可以通过在文件中写入任何已知的提交 ID 或指向有效提交 ID 的指针来修复错误。换句话说,您重新分配了 branch 提交的缓存值origin/colors-housekeeping。当您从获取origingit会写入正确提交的编号,origin/colors-housekeeping在refs/remotes/origin/colors-housekeeping一次。
| 归档时间: |
|
| 查看次数: |
4223 次 |
| 最近记录: |