2016-10-25 31 views
0

我在關機後關閉了電腦,發現它是一個硬復位,而不是睡眠。我的git倉庫被破壞了。幸運的是,我承諾並推動了一切,所以我只需要將它重置爲原始狀態。這裏是我所得到的,當我運行git fsck --fullGit存儲庫在電腦崩潰後壞掉

$ 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

git reflog betterfmgr給你什麼嗎?你是否記得在這個分支的最後一次提交中有一些唯一的字符串? –

回答

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 

請注意,這將會導致您的本地分支和您的推薦日誌丟失。

+0

謝謝,這工作。 –

1

如果按照你所說的那樣推送了所有東西,只要在另一個目錄中創建一個git克隆並刪除損壞的回購。