今天中午下班的最後一秒,我push了個人代碼,ding~電腦掛機了。我還暗暗慶幸還好提交好了代碼。 下午修改了代碼,想要更新線上時,git居然掛了!我對git的使用真的還不算熟悉,遇到這種狀況我真的那一瞬間就只有一臉懵,而後面向百度。 報錯1: error: bad signature fatal: index file corrupt 緣由: 因爲index file在 git 裏面通常指的是 .git/index 這個文件。這個文件保存的是暫存區的信息(索引信息)。能夠經過 git ls-files --stage 來查看暫存區的內容。這個文件很重要!可是如今報 index file corrupt,說明這個文件已經損壞了。還好,咱們有辦法從新來生成這個文件:git read-tree 或者直接 git reset. 解決方法: 1.刪除或重命名 .git/index 文件: rm -f .git/index 2. git reset
解決了第一個問題,我覺得就行了,激動地再次操做,git status出現的文件全是綠色,我覺得是所有要從新提交下呢,沒當回事,直到我git commit時遇到了fatal,走不下去了,再次面向百度。 報錯2: fatal: cannot lock ref 'HEAD': unable to resolve reference 'refs/heads/master': reference broken 緣由: 多是push時電腦重啓,致使git文件受損。 解決方法: 這個方法我是借鑑的別人的:遠程從新check out這個工程到新的文件夾,把新項目的 .git文件夾完整複製到 出錯的文件夾中,而後再commit,push。
可是我沒有借鑑的那位博主幸運,接下來個人代碼就......衝突了,最不想遇到的就是衝突。 報錯3: Automatic merge failed; fix conflicts and then commit the result 解決方法: emmm,能夠下載一個Visual Studio Code來解決衝突。 解決完衝突以後,add,commit,pull,push,成功結束了此次的‘慘劇’。若是有更好的辦法,但願你們多多指教!