Git签出地图目的地

Git签出地图目的地,git,Git,我有一个使用git hook post更新的部署到我的服务器。 它钩子调用:git-worktree=/folderdestination/checkout-fmaster,并且工作正常 它不能改变git回购协议。但是我需要在工作树签出的/上部署项目文件夹www中的文件 例: www/index.php of my git->/index.php of my server您可以通过稀疏签出来实现这一点。在远程服务器上的裸repo目录中运行此操作: git config core.sparsech

我有一个使用git hook post更新的部署到我的服务器。 它钩子调用:git-worktree=/folderdestination/checkout-fmaster,并且工作正常

它不能改变git回购协议。但是我需要在工作树签出的/上部署项目文件夹www中的文件

例:
www/index.php of my git->/index.php of my server

您可以通过稀疏签出来实现这一点。在远程服务器上的裸repo目录中运行此操作:

git config core.sparsecheckout true
echo "www/*" >> info/sparse-checkout
对选定的目的地进行签出,如更新后挂钩中已有的目的地:

git --work-tree=/ checkout -f master
mv /www/* /                      
rm -rf /www 

假设您有写入根目录的权限,则每次推送时都会将您的www内容放在远程服务器的根目录中。

jordan,这很有趣,但这仅签出info/sparse checkout中列出的文件。不要更改目标路径。它将repo的文件夹www放在服务器的内部。我需要将文件放入www文件夹repo on/without www文件夹。我需要将文件映射到签出和it目标folder@David,对不起,我没有包括钩子的最后一部分。我已经更新了答案。另一种可能是在一个临时目录中进行签出,然后在正确的路径中将我需要的文件与rsync同步。