大家好,我是小鄭!時間:20:00完
今天分享關於githooks。
我們主要講一下它怎麼用?有什麼用?我用它來做什麼。
前端的小夥伴們對Hook這個東西應該都很瞭解。
Hook的意思就是鉤子,用於在執行某個事件之前或之後進行一些其他額外的操作。
Git有很多的事件,如commit/push等,每個事件都有不同的鉤子函式。
我們可以在這些鉤子函式中執行一些自己想要的操作來滿足一些需求。
那麼這些鉤子函式怎麼查到了?
用下面命令:
cd .git/hooks
上圖這些帶.sample字尾的檔案就是對應事件的鉤子函式。
隨便點開一個檔案,裡面就詳細說明如何使用它。
大概就是將對應檔名去掉字尾名,保留檔案,將自己想要實現的操作寫在裡面就行。
然而,大家都應該知道,這個.git檔案是不能提交到倉庫中去的。這樣一來,如果是多人合作專案,那別人要用就只能複製過去了。
為了解決這個問題。有一個工具出現了。
Husky
它能讓配置 Git 鉤子變得更簡單。
總的來說就是讓配置檔案和鉤子關聯起來。
具體怎麼用?有什麼實用價值 ? 接下來我給大家舉個例子。
講講我作為一個前端開發工程師,在我的專案中,我用git Hooks來做什麼。
在我的專案中我對程式碼的提交要求非常嚴格,也必須規範。比如提交程式碼資訊格式一定要是下面三種形式之一。
--story=需求單號 提交說明
--bug=需求單號 提交說明
--task=需求單號 提交說明
也就是:
git commit -m "--story=12341 說明"
如果不符合這種提交就攔截下來,不準提交。
這個功能怎麼實現?
就用到git Hooks來實現了。
第一步:在package.json裡寫配置
第二步:在build裡寫執行指令碼。
指令碼內容相對來說長一點,這裡不貼了,有感興趣的找我要哈。
看一下提交效果,假如我像下面這樣提交資訊:
git commit -m "1234"
這個提交明顯不符合標準,那麼控制檯會報如下資訊:
此次提交攔截了。
當然,關於githooks還有其它的用處。