2016-10-25 15 views
0

私はコンピュータを電源を切ってから電源を切って、ハードリセット、スリープ状態ではないことを発見しました。私のgit repoは壊れてしまった。幸いにも、私はすべてをコミットしてプッシュしたので、ただ初期状態にリセットする必要があります。ここで私はbetterfmgr枝にあったが、.git/refs/heads/betterfmgrが空のファイルである私はgit fsck --fullコンピュータのクラッシュ後にGitリポジトリが壊れた

$ 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 

を実行したときに、私が得るものです。どのようにそれを修正するための任意のアイデア?私はもう一度複製することができますが、私はnode_modulesのコピーをコピーし、私の.ideaファイルをコピーする必要があります。

+0

'git reflog betterfmgr'はあなたに何かを与えますか?このブランチでの最後のコミットに何らかの一意の文字列を覚えていますか? –

答えて

0

あなたは次のことを試すことができます。

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 

:私はアイデアを説明しようとするリモートリポジトリ


の新しいクローンから.git/ディレクトリの新鮮で健全なコピーを取得しますただし、これによってローカルブランチとreflogが失われることに注意してください。

+0

ありがとうございました。 –

1

あなたが言ったようにすべてをプッシュした場合は、別のディレクトリにgitクローンを作成し、破損したレポを削除してください。

関連する問題