2017-03-06 82 views
0

如何編寫post-receive鉤子,當主分支上的特定目錄發生變化時執行某些操作?到目前爲止,我想出瞭如何確定推送是否涉及主分支,但我正在確定給定的目錄是否已更改。我想我必須在這裏做一些git魔術。Githook to msg on change to specific directory

在這種情況下,我想檢查schema/目錄中是否有任何更改。這是我迄今爲止所有的,我從文檔中獲得的。

#!/bin/bash 
echo POST-RECEIVE 
while read oldrev newrev refname 
do 
    branch=$(git rev-parse --symbolic --abbrev-ref $refname) 
    if [ "master" == "$branch" ]; then 
     do_something $oldrev $newrev $refname 
    fi 
done 

回答

0

設置git diff --name-only $oldrev $newrev並檢查路徑的輸出。

0

這適合我現在的需求。

#!/bin/bash 
echo POST-RECEIVE 
while read oldrev newrev refname 
do 
    branch=$(git rev-parse --symbolic --abbrev-ref $refname) 
    if [ "master" == "$branch" ]; then 
     git diff --quiet --exit-code $oldrev $newrev -- schema/ || echo SUCCESS 
    fi 
done