git踩過的坑--電腦重啓致使git文件破損

今天中午下班的最後一秒,我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

bad signature

解決了第一個問題,我覺得就行了,激動地再次操做,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。

git status

可是我沒有借鑑的那位博主幸運,接下來個人代碼就......衝突了,最不想遇到的就是衝突。
報錯3:
	Automatic merge failed; fix conflicts and then commit the result
解決方法:
	emmm,能夠下載一個Visual Studio Code來解決衝突。

	解決完衝突以後,add,commit,pull,push,成功結束了此次的‘慘劇’。若是有更好的辦法,但願你們多多指教!

相關文章
相關標籤/搜索