一、 git commit -m 'xxx' 出現問題
今天在上傳項目的時候在commit階段遇到一個問題,無論是在Sourcetree上傳還是用命令git commit -m 'xxx'
都報了一下錯誤:
husky > npm run -s precommit (node v8.12.0)
husky > pre-commit hook failed (add --no-verify to bypass)
后面查了很多方法都沒有很好解決。但是大概能總結問題:
pre-commit鈎子惹的禍
當你在終端輸入git commit -m "xxx"
,提交代碼的時候,
pre-commit(客戶端)鈎子,它會在Git鍵入提交信息前運行做代碼風格檢查。
如果代碼不符合相應規則,則報錯。
雖然會提示add --no-verify
,但是我輸入git commit -m 'xxx' --no-verify
繞過驗證,強制提交。 好像還是沒有上傳成功.如果你也一樣
請看下面
二、'弱雞'的解決方案
為了省點事,我並沒有花功夫去查找代碼哪里不符合規范.我是暴力地把pre-commit
鈎子給刪除了!
具體步驟:
- 進入項目的.git文件夾(文件夾默認隱藏,可先設置顯示或者命令ls查找)
- 再進入hooks文件夾
- 刪除pre-commit文件
重新git commit -m 'xxx'
git push
即可。SourceTree也可以正常推送
總結一句話: 刪除.git的提交規則文件: rm -rf ./git/hooks/pre-commit
最后忠告一句: 這是不得已的辦法。如果是日常開發,還是乖乖地寫好代碼的規范,現在代碼一般都會進行ESLint
校驗,如果覺得麻煩,可以裝一個Prettier插件,幫你格式化代碼