之后git init,我添加并提交了一些文件,进行了一些更改,添加并提交.设置git守护程序(在WinXP上的Cygwin下运行)并克隆一次存储库.现在,我在克隆的存储库中收到此错误:
$ git status
error: bad index file sha1 signature
fatal: index file corrupt
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这个问题,除了获取存储库的新副本?
当我尝试提交更改时,我收到此错误:
error: object file .git/objects/31/65329bb680e30595f242b7c4d8406ca63eeab0 is empty
fatal: loose object 3165329bb680e30595f242b7c4d8406ca63eeab0 (stored in .git/objects/31/65329bb680e30595f242b7c4d8406ca63eeab0) is corrupt
Run Code Online (Sandbox Code Playgroud)
不知道如何解决这个错误?
编辑
我试过git fsck我有:
error: object file .git/objects/03/dfd60a4809a3ba7023cbf098eb322d08630b71 is empty
fatal: loose object 03dfd60a4809a3ba7023cbf098eb322d08630b71 (stored in .git/objects/03/dfd60a4809a3ba7023cbf098eb322d08630b71) is corrupt
Run Code Online (Sandbox Code Playgroud) 我有一个GitHub仓库,有两个分支 - 主和发布.
发布分支包含二进制分发文件,这些文件导致了非常大的repo大小(> 250MB),所以我决定清理一下.
首先,我删除了远程发布分支 git push origin :release
然后我删除了本地发布分支.首先我试过git branch -d release,但是git说"错误:分支'释放'不是你当前HEAD的祖先." 这是真的,所以我git branch -D release强迫它被删除.
但是我在本地和GitHub上的存储库大小仍然很大.所以然后我浏览了通常的git命令列表,比如git gc --prune=today --aggressive没有运气.
按照Charles Bailey在SO 1029969的指示,我得到了最大blob的SHA1列表.然后我使用来自SO 460331的脚本 来找到blob ......并且五个最大的不存在,虽然找到了较小的blob,所以我知道脚本正在工作.
我认为这些博客是发布分支中的二进制文件,它们在删除该分支后不知何故.什么是摆脱它们的正确方法?
我遇到了硬盘故障导致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 fsck --lost-found了我的存储库.
我希望看到几个悬空提交,我重置了HEAD.
但是,我惊讶地看到可能有数千条悬空blob消息.
我不相信我的存储库有任何问题,但我很好奇是什么原因导致这些悬空斑块?只有两个人在存储库上工作,我们没有做任何与众不同的事情.
我不认为它们是由旧版本的文件替换为新版本创建的,因为git需要保留两个blob以便它可以显示历史记录.
想想看,有一次我们错误地将一个非常大的目录(数千个文件)添加到项目中然后将其删除.这可能是所有悬空斑点的来源吗?
只是寻找洞察这个谜.
在Ruby on Rails上使用git时发生了这种情况.完成并创建了几个提交和分支.
git version 1.7.3.4
Run Code Online (Sandbox Code Playgroud)
我不小心删除了git的文件夹中使用
git -rf .git
Run Code Online (Sandbox Code Playgroud)
但我在在线git-hub存储库上完成了所有文件和更新.我想恢复.git文件夹.问题?
如果我从远程获取提取,我收到以下错误
$ git pull
remote: Counting objects: 85, done.
remote: Compressing objects: 100% (37/37), done.
remote: Total 85 (delta 63), reused 69 (delta 48)
Unpacking objects: 100% (85/85), done.
error: inflate: data stream error (unknown compression method)
fatal: failed to read object 8b0fd4094630fea108b60faa15535ffbc85d87cb: Invalid argument
error: http://myremoterepo.com/project.git did not send all necessary objects
Run Code Online (Sandbox Code Playgroud)
我可以在当地提交.当我检查状态时:
> $ git status On branch vikas Your branch is based on 'origin/master',
> but the upstream is gone. (use "git branch --unset-upstream" to
> fixup) …Run Code Online (Sandbox Code Playgroud) 我的一个克隆的存储库是从git fsck获得的
致命:松散对象40bda4e3b79c3d7bf598df31d9e68470f97a3f79(存储在的.git /对象/ 40/bda4e3b79c3d7bf598df31d9e68470f97a3f79)已损坏
我有另一个副本,fsck干净利落.
我试过nuking目录/子目录包含致命的目录/子目录,并重新克隆它.问题还在继续.
我真的不关心任何特定的文件,我只是希望存储库干净地结账.我该怎么办?
注意:远程存储库托管在github上.
在收到此错误之前,我立即执行了以下操作:
user@thismachine:~/file/path$ git add *
user@thismachine:~/file/path$ git push
^C
user@thismachine:~/file/path$ git commit -m "my commitmesg"
Run Code Online (Sandbox Code Playgroud)
(我惊慌失措,因为我在推动之前忘了添加一个提交,所以我cntrl + c'ed它.
现在,我从git fsck -full收到以下错误:
error: inflate: data stream error (incorrect header check)
error: corrupt loose object '5cdeb9c3a1fe164cb4d2779d1e0d9d9f4ef18c6a'
fatal: loose object 5cdeb9c3a1fe164cb4d2779d1e0d9d9f4ef18c6a (stored in .git/objects/5c/deb9c3a1fe164cb4d2779d1e0d9d9f4ef18c6a)
Run Code Online (Sandbox Code Playgroud)
git cat-file -t 5cdeb9c3a1fe164cb4d2779d1e0d9d9f4ef18c6a返回此对象是提交.
搜索之后,我发现如果对象是blob,如何解决这个问题,而不是如果它是一个提交.
我最近使用Tortoise Git提交后出错:
"无法获取所有引用.libgit2返回:损坏的松散引用文件"
当我去检查日志时弹出.
关于如何纠正这个问题的任何想法?