1. 程式人生 > >伺服器鉤子,絕對是伺服器的,update鉤子和pre-receive鉤子

伺服器鉤子,絕對是伺服器的,update鉤子和pre-receive鉤子

一、在哪裡寫鉤子?

最近在寫指令碼實現註釋資訊規則話,所以在網上各種百度,最後你會發現那些說的伺服器鉤子其實還是客戶端鉤子,因為他們都說的是把工程檢出,然後進入.git/hook目錄下發去寫鉤子,這樣全部是自己客戶端的自定義規則,無法實現共享和分發,你不可能讓所有人把你的鉤子安裝在本地吧,所以我發現被坑好慘。後面我就鬧洞一開,去試試找一下安裝git的伺服器上面有沒有鉤子目錄唄,果然搜到了這個目錄:

所以大家可以去搭建gitlab的伺服器上面去搜索以下關鍵字:gitlab-shell,看一下我搜到的:

對了,就在這裡:


下面有三個檔案update、pre-receive、post-receive三個指令碼,說一下分別是:pre-receive在push前檢查你寫的規則,如果指令碼非0退出,那麼就不允許push;post-receive是在push之後你有一些額外的操作,比如發郵件通知釋出結果等等;最後的update和pre-receive類似,但是它會給所有的分支都推送你的規則。

大家直接看我的程式碼吧,具體的自己去看一些資料吧:就是他們的引數傳遞不太一樣,還有就是推送的分支不同!

update的


pre-receive