鉤子
鉤子都被存儲(chǔ)在 Git 目錄下的 hooks 子目錄中--即絕大部分項(xiàng)目中的 .git/hooks 。 當(dāng)你用 git init 初始化一個(gè)新版本庫(kù)時(shí)羊瘩,Git 默認(rèn)會(huì)在這個(gè)目錄中放置一些示例腳本荒勇。這些腳本除了本身可以被調(diào)用外柒莉,它們還透露了被觸發(fā)時(shí)所傳入的參數(shù)。 所有的示例都是 shell 腳本沽翔,其中一些還混雜了 Perl 代碼兢孝,不過(guò),任何正確命名的可執(zhí)行腳本都可以正常使用
pre-commit
.git/hooks/pre-commit
這個(gè)鉤子被 git commit 命令調(diào)用, 而且可以通過(guò)在命令中添加–no-verify 參數(shù)來(lái)跳過(guò)仅偎。這個(gè)鉤子不需要參數(shù)跨蟹,在得到提交消息和開始提交(commit)前被調(diào)用。如果鉤子返回值不是0橘沥,那么 git commit 命令就會(huì)中止執(zhí)行窗轩。
譯注:這個(gè)鉤子可以用來(lái)在提交前檢查代碼錯(cuò)誤(例如運(yùn)行l(wèi)int程序)。
當(dāng)默認(rèn)的pre-commit鉤子被啟用時(shí)座咆,如果它發(fā)現(xiàn)文件尾部有空白行品姓,那么就會(huì)中止此次提交寝并。
1. 在同步本地項(xiàng)目到git出現(xiàn)這個(gè)錯(cuò)誤:
pre -commit hook failed (add --no-verify to bypass)
pre-commit鉤子惹的禍
當(dāng)你在終端輸入git commit -m "xxx",提交代碼的時(shí)候,
pre-commit(客戶端)鉤子腹备,它會(huì)在Git鍵入提交信息前運(yùn)行做代碼風(fēng)格檢查衬潦。
如果代碼不符合相應(yīng)規(guī)則,則報(bào)錯(cuò)植酥。
2.暴力解決步驟:
進(jìn)入項(xiàng)目的.git文件夾(文件夾默認(rèn)隱藏,可先設(shè)置顯示或者命令ls查找)
再進(jìn)入hooks文件夾
刪除pre-commit文件
重新git commit -m 'xxx' git push即可镀岛。SourceTree也可以正常推送
總結(jié): 命令刪除.git的提交規(guī)則文件: rm -rf ./git/hooks/pre-commit
3.其他解決方式
git commit - -m "msg"
或者
git commit --no-verify -m "msg"