如果在主分支上的特定目录发生更改时,如何编写后接收挂钩?到目前为止,我想出了如何确定推送是否涉及主分支,但我正在确定给定目录是否已更改。我想我必须在这里做一些git魔法。
在这种情况下,我想检查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 :(得分:0)
制作git diff --name-only $oldrev $newrev
并检查路径的输出。
答案 1 :(得分: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