2014-07-11 149 views
1

我們需要阻止推送到我們的bitbucket repo上的某個分支。Git push hook禁用推送到分支

而且我們認爲我們可以在本地阻止它。

有什麼辦法可以防止通過一些預先推送鉤子在本地推送某個分支?

操作系統:Windows。

+0

是否有一個特殊的原因,你想添加一個客戶端的鉤子而不是服務器端的一個? –

+0

任何針對bitbucket的服務器端解決方案?禁用推送,但通過拉取請求啓用合併。 – korovaisdead

+0

啊,我沒有注意到你正在使用bitbucket存儲庫。我會盡力爲客戶端找到解決方案。 –

回答

3

這顯然是一個不太理想的解決方案,但由於BitBucket不提供添加更新掛鉤的可能性,因此無論如何我都會提供它。

要防止通過本地鉤子推送到分支,可以使用pre-push掛鉤(自git 1.8.2以來可用)。

#!/bin/sh 

while read local_ref local_sha remote_ref remote_sha 
do 
    if [ "$remote_ref" = "refs/heads/test" ]; then 
     echo "Pushing to branch \"test\" is forbidden" 
     exit 1 
    fi 
done 

exit 0 

只是你想從推手,以保護對應的分支名稱替換test

有關預推鉤的更多信息,您可以查看example file,如果您想了解有關鉤子的更多信息,請參閱corresponding chapter in the gitpro book


重要

請記住,你在倉庫中的每一個克隆安裝此掛鉤,因爲它是一個客戶端掛鉤,而不是一個服務器端的一個。

顯然服務器端update掛鉤將是可取的。