我在睡觉后关掉电脑,发现这是一次硬重置,而不是睡觉。我的git repo坏了。幸运的是,我已经承诺并推动了所有内容,因此我只需要将其重置为原始状态。这是我运行git fsck --full
$ git fsck --full
error: Invalid HEAD
error: inflate: data stream error (unknown compression method)
error: unable to unpack 0485493a56ad42802b72cee71522666628294e3d header
error: inflate: data stream error (unknown compression method)
fatal: loose object 0485493a56ad42802b72cee71522666628294e3d (stored in .git/objects/04/85493a56ad42802b72cee71522666628294e3d) is corrupt
我在betterfmgr
分支上,但.git/refs/heads/betterfmgr
是一个空文件。知道怎么解决吗?我可以再次克隆它,但我需要复制数以千计的node_modules
并复制.idea
个文件。
答案 0 :(得分:1)
如果按照你的说法推送了所有内容,只需在另一个目录中创建一个git clone并删除损坏的repo。
答案 1 :(得分:0)
您可以尝试以下操作:从远程存储库的新克隆中获取.git/
目录的全新且理智的副本
我会尝试说明这个想法:
git clone sources_server:repo newdir/ # make a git clone, in a new directory
cd newdir/
git checkout betterfmgr # set active branch to 'betterfmgr'
cd ..
cd olddir/ # go into your original working copy,
# with current node_modules/ dir, .idea files, etc ...
mv .git/ .git.old/
mv ../newdir/.git .git # get ".git/" folder from other repository
# now check if everything looks like you expected :
git status ...
git diff ...
git difftool -d ...
idea ...
# if all looks well, remove old dir :
rm -rf .git.old
请注意,这会丢失您的本地分支和您的reflog。