Git報錯 bad signature
將文件提交到倉庫時,拋出以下錯誤:
報錯
Roc@DESKTOP-AF552U2 MINGW64 /e/note/Git (master)
$ git add git連接GitHub以及推送至倉庫.md
error: bad signature
fatal: index file corrupt
原因分析
由於index file在 git 里面一般指的是 .git/index 這個文件。這個文件保存的是暫存區的信息(索引信息)。可以通過 git ls-files --stage 來查看暫存區的內容。這個文件很重要!但是現在報 index file corrupt,說明這個文件已經損壞了。還好,我們有辦法重新來生成這個文件:git read-tree 或者直接 git reset.
解決辦法
- 進入到工程目錄下: cd /path/to/dir
- 刪除或重命名 .git/index 文件: rm -f .git/index 或 mv .git/index{,.bak}
- 重建 .git/index : git read-tree 或者直接 git reset
Roc@DESKTOP-AF552U2 MINGW64 /e/note (master)
$ mv .git/index .git/index.bak
Roc@DESKTOP-AF552U2 MINGW64 /e/note (master)
$ git reset
Unstaged changes after reset:
M Git/git的初次使用.md
M Git/git的選項參數.md
Roc@DESKTOP-AF552U2 MINGW64 /e/note (master)
$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
(use "git push" to publish your local commits)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: "Git/git\347\232\204\345\210\235\346\254\241\344\275\277\347\224\250.md"
modified: "Git/git\347\232\204\351\200\211\351\241\271\345\217\202\346\225\260.md"
Untracked files:
(use "git add <file>..." to include in what will be committed)
Git/git failed to push some refs to github.md
"Git/git \346\212\245\351\224\231 index file corrupt.md"
"Git/git\350\277\236\346\216\245GitHub\344\273\245\345\217\212\346\216\250\351\200\201\350\207\263\344\273\223\345\272\223.md"
no changes added to commit (use "git add" and/or "git commit -a")
Roc@DESKTOP-AF552U2 MINGW64 /e/note (master)