2014-04-29 45 views
0

我有一個git存儲庫,當有人試圖在特定分支上推 時,我想啓動一個掛鉤。 (pre-receive鉤,檢查分支,拒絕,如果是主分支。)GIT - 獲取推送的分行名稱,服務器端

是否有一個地方,我可以得到推在服務器端分支任何變量時的用戶,他$git clone 使用$git push

謝謝。

回答

1

由於git的結構,當用戶將其更改推送到遠程時,您將首先意識到用戶更改。所以安全處理這種情況的唯一方法是使用server-side-hooks

客戶端掛鉤駐留在存儲庫的隱藏文件夾中,因此您不幸無法控制它。

幾乎類似的question曾被問過一次。

您可以使用update-script對不同分支(參考)上的更新進行操作。

+0

我實際上想要使用預接收鉤子,但是我可以知道用戶在預接收鉤子被調用時正在推送什麼分支嗎? – Delfalso

+0

在更新腳本中,您可以對單個分支的更新進行操作並撤消它們。 – florianb

+1

@Delfalso預接收鉤子('git help hooks')的文檔解釋了鉤子運行時接收到的輸入(以及該輸入的特定格式)。這包括將要更新的分支的名稱以及它們將如何更新,前提是鉤子腳本允許更改......它還記錄@florianb所指的更新鉤子。 – twalberg