在接觸了Git版本控制之后,很長一段時間里就只使用commit、pull、push這三個命令,並沒有進行深究。而早上在用commit代碼提交前端代碼的時候出現了報錯信息husky > pre-commit,於是開始查找背后的原因,最后通過閱讀相關資料成功解決。
一、問題復現
我是通過IDEA編輯器中的Git工具進行提交代碼,以往都是在勾選上需要提交的文件后,並輸入提交描述,點擊commit就提交成功了。但是早上在新的代碼環境中,點擊commit突然報錯:
密密麻麻一大串的報紅信息讓人猝不及防,由於之前都是很順利的commit,我也沒見過這陣勢。乍一看還以為跟前端代碼有關系,因為錯誤提示中提到了node以及npm等字樣。
二、解決過程
一對比同事那邊是相同的代碼,照樣能順利的提交到版本庫中,所以排除了代碼問題。
雖然看着這么多報錯信息,秉持着報錯只看最前面的幾行的理念,我將報錯信息定位在第三行:
husky > pre-commit (node v12.13.0)
關鍵詞是husky > pre-commit,百度了一番之后,發現了問題所在,確實是本地項目中的.git下的一個文件導致的提交失敗,這個文件是pre-commit文件。找到項目中的.git文件夾(需要顯示隱藏文件才會出現),雙擊進入就能看到關於git的一些文件
顯示隱藏文件:
進入hooks文件夾,並找到pre-commit文件,這就是commit失敗的根源所在了。
該文件所起到的作用是:
pre-commit(客戶端)鈎子,它會在Git鍵入提交信息前運行做代碼風格檢查。
如果代碼不符合相應規則,則報錯。
解決:我們將該文件刪除之后,再進行commit,發現就能成功提交了。
三、總結
對於Git的應用倒是熟練了,由於不懂原理所以在遇到問題的時候還是需要進行查閱資料,這也算是一種學習的過程,碰到問題,解決問題,並歸納總結。