Git post-receive hook。移动除少数文件夹以外的所

时间:2014-09-06 10:19:43

标签: git githooks

我在我的服务器上实现了一个post-receive hook(git用git init --bare初始化)。 Hook是通过以下方式创建的:

cd repo/hooks/
touch post-receive
chmod 777 post-receive

然后我在文件里面:

#!/bin/sh
GIT_WORK_TREE=/var/www
export GIT_WORK_TREE
git checkout -f

现在,当我推送本地更改时,所有内容都会移动到/ var / www文件夹。问题是我不希望移动一些文件夹。例如,我有folder1folder2那里我不想被移动。目前我在推送后手动删除这些文件夹,但这是一个荒谬的工作,我想自动化它。

我正在ubuntu 14.04 / git 2.1

1 个答案:

答案 0 :(得分:2)

  

我在推送

后手动删除这些文件夹

您可以在钩子中添加此步骤

另一种方法是尝试set up a sparse checkout(因为你可以exclude folders in the sparse-checkout file)。

echo "/*" > .git/info/sparse-checkout
echo "!folder1/" >> .git/info/sparse-checkout
echo "!folder2/" >> .git/info/sparse-checkout