Git Hooks是一種腳本,Commit、Push、Rebase時,Git會先去檢查有沒有設置Git Hooks,假若有,則會先執行。那這有什麼好處?
更多的人們共同開發一項大專案時
團隊確實該有一致的標準跟足夠意識在交付代碼品質上。
但在我來看如果能有保證徹底執行且無需人工去遵循的Flow幫我們做檢查,那是再好不過了。
這正是我接觸Git Hooks的動機,它多次提醒了我還得做什麼事。
在專案底下 ls -a
可以看到.git
的隱藏資料夾,進去到hooks後會看到如下:.sample
是因為它在告訴我們,可以在這邊編寫屬於我們的hooks腳本,這些.sample
檔是不會被執行的。
而這裡有Git Hooks百科大全,我也還沒看完,我挑我需要的來研究:
Commit Message送出前,會執行此份腳本,作用為檢查你的Commit訊息。例如:我們可以檢查訊息的格式,甚至將他調整成符合標準的格式。
如果腳本最後輸出非0值,例如:exit 1
,則代表Commit失敗,屆時該次Commit會被阻止。
之後會舉些實際實作過的經驗來仔細介紹。
如同字面上意思,Push前會先執行此腳本,同樣輸出非0值會導致Push失敗。
這裡不會用到任何Commit Message,換句話說按下Commit按鈕時,會先執行此腳本。
接著才會跑到Commit-Msg
,到那裡才會拿Message來做檢查取改動。
因此這邊能做的事情,我有做過的事情是確認當前Commit的Branch是否是可以直接Commit的,藉此來避免一些人為疏失。
明天我就不廢話開始講第一個實際應用例子