我在我的服务器上实现了一个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文件夹。问题是我不希望移动一些文件夹。例如,我有folder1
和folder2
那里我不想被移动。目前我在推送后手动删除这些文件夹,但这是一个荒谬的工作,我想自动化它。
我正在ubuntu 14.04
/ git 2.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