2015年4月23日 星期四

Git hook 快速指南

說明

Git提供事件觸發功能(在此使用hoook,翻譯成掛鉤),在某些時間點,可以做一些客製化的事情。
以下我們先將這些掛鉤列出來看看[1]

安裝

掛鉤檔,都存放在.git/hooks(預設)目錄下,git會預設一些腳本範例。所有的hook檔範本都是shell腳本語言寫成,其中還包含一些Perl腳本。把一個正確命名且可執行的檔案放到指定的目錄中,即完成安裝,之後就會在正確的時機點被git呼叫。
範例檔都是以.sample副檔名,必須重新命名,才會被執行。

Client可用的掛鉤

提交工作流程掛鉤

pre-commit
輸入commit資訊前執行
prepare-commit-msg
commit資訊編輯器顯示之前
commit-msg
掛鉤接收一個參數,此參數是包含最近提交資訊的暫存檔路徑。
post-commit
整個提交過程完成後執行

E-mail 工作流掛鉤

運行git am指令時,會呼叫這三個掛鉤,如果你通過 e-mail 接收由git format-patch產生的補丁,這些掛鉤也許對你有用。

applypatch-msg
他接收一個參數:包含被建議提交資訊的暫存檔案名。
pre-applypatch
透過git am應用補丁時執行,該掛鉤不接收參數,在補丁被應用之後執行
post-applypatch
在git am操作期間執行

其他掛鉤

pre-rebase
rebase前執行
post-checkout
git checkout成功執行後執行
post-merge
git merge命令成功執行後會執行

Server可用的掛鉤

pre-receive and post-receive

pre-receive
git push執行後,接收commit內容之前執行。
post-receive
接收commit內容之後執行,不過執行過程使用者要保持連線。(注意此腳本是否會執行很久,連線就要保持一段時間)

update

update
每一個分支更新時執行一次

其它 有檔但是Pro Git沒提到的

post-update.sample
pre-push.sample

參考資料

[1]7.3 Git 客製化 - Git Hooks

沒有留言:

張貼留言