存在本地文件夹/var/www/test/
还有一个Git仓库,它有一个build/static
文件夹。我需要从/var/www/test/
中的此文件夹获取文件和文件夹
但结果是,在/var/www/test/
中,build
是用static
文件夹创建的。我需要static
位于/var/www/test/
的根(即/var/www/test/static
)
怎么做才对?先谢谢你了。
我试过了:
cd /var/www/test/
git init
git remote add -f origin <repo_address>
git config core.sparseCheckout true
echo 'build/static' >> .git/info/sparse-checkout
git pull origin master
2条答案
按热度按时间toiithl61#
您可以在
/var/www
之外的远程主机上创建一个git裸存储库。向它添加一个pre-receive
钩子,将存储库的子文件夹的内容部署到/var/www/test/static
中。本例预期/var/www/test/static
存在且为空。build
也被假定在存储库的顶层。您可以尝试使用其他目录结构,但这对我很有效。当你推送到远程裸存储库时,预接收钩子应该部署文件。
注意事项:
/var/www/test/static
中手动更新文件,git将拒绝覆盖它们。l7wslrjt2#
我提出了一种方法,可以避免
.git
目录(即Git本地存储库元数据),因为你可能不想冒险公开你的项目历史。将来也会更容易使用。
我建议在机器上的其他地方将存储库克隆到一个单独的文件夹中(稀疏与否,不影响结果),然后链接到您感兴趣的文件夹,即。
static
转换为/var/www/test/
。1.确保您在
/var/www/test/
中没有static
文件夹(如果存在,请将其删除)1.在其他地方克隆您的存储库(不在
/var/www/test/
中)1.将已检出的
static
文件夹链接到/var/www/test/
:(注:
-s
选项用于创建符号链接,如果出于某种原因需要,您可以通过删除此选项来创建硬链接)完成!任何时候你拉取,新的内容将自动在
/var/www/test/
中可用。