Eclipse(STS 4)闪退导致EGit插件异常
引言
到目前為止,STS已經閃退過三次了。
問題很棘手,我需要冷靜。
首先出現了一個問題就是,EGit無法commit。
第二個問題是切換分支報錯。
閃退重啟后EGit無法提交代碼
觀察閃退出現的時機,一般出現在我 commit 代碼的時候,只要點擊commit,STS就會以迅雷不及掩耳之勢自動退出,猝不及防!
重啟后,代碼無法提交!!WTF!
問題出現在 index.lock?文件上。
index.lock文件是在進行某些比較費時的git操作時自動生成的,操作結束后會自動刪除,相當于一個鎖定文件,大小為0KB。它的目的在于防止對一個目錄同時進行多個操作。有時強制關閉進行中的 git 操作,這個文件沒有被自動刪除,之后你就無法進行其他操作,必須手動刪除。這個文件位置在項目的 .git文件夾中。
閃退重啟后,手動刪除這個文件,確實可以解決代碼無法提交的問題。
閃退重啟后切換分支出錯
這個問題比較嚇人。大有想把整個項目干掉重新pull的沖動。
現象描述:閃退重啟之后,從目前正在工作的 feature(新功能)分支上切換回dev分支,但是當點擊 switch branch 的時候,在EGit Git Staging 視圖的 Unstaged Changes 區域突然涌現出大量未同步文件 !!!且當前分支也并未切換回dev分支,同時彈出錯誤提示框————"Check out branch encounter a problem !"
經過仔細觀察,Unstaged Changes區域的文件都是dev分支上的文件,也就是說,整個項目的文件內容實際上已經是dev分支的內容了,但是由于前面閃退的原因,此時的切換操作EGit并沒有把 HEAD指針?真正切換到dev分支上,還是停留在feature分支上,才會出現好似?“dev分支上的文件還沒有在feature分支上提交” 的奇怪現象。
在錯誤提示框的Detail一欄,始終顯示 :Couldn't rename .../.../.../LOG_FILE_IS_UNDEFINED ... to ...?(由于問題已經解決,因此沒來得及截圖,總之大意就是這個)
問題并沒有比較靠譜的解釋。
但我的解決方案是:將LOG_FILE_IS_UNDEFINED 文件重命名之后再重啟Eclipse ,有時候系統會提示這個文件被占用,先將Java SE 服務停掉,然后將LOG_FILE_IS_UNDEFINED隨便改個名稱(可以加個后綴.bak),再重啟Eclipse即可。
在Stack Overflow上搜索到類似的問題,但解決方案貌似并不管用。
不過,問題貌似出現在 rename 分支。這倒也可以解釋為什么切換分支時文件系統中的實際內容已經是另一個分支上,而branch name卻并未切換的現象。
總結
1、刪除項目所在目錄下的 .git 文件夾中的index.lock?文件;
2、重命名主項目下的LOG_PATH_IS_UNDEFINED 文件,或刪除。
希望有了解這個問題的小伙伴,下方留言哦,非常感謝。:)
?
總結
以上是生活随笔為你收集整理的Eclipse(STS 4)闪退导致EGit插件异常的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 兰州交通大学计算机科学与技术排名,兰州交
- 下一篇: html cookie传参,页面间固定参