我正在尝试弄清楚如何执行以下操作(并弄清楚它是否可能)。
我有一个本地 git 存储库,其中包含许多用于各种用途的文件夹,但我希望能够使用 git 将我的网站部署到我的开发服务器上,实际上只有一个文件夹的内容应该进入远程 webroot(只是文件夹的内容,而不是文件夹本身,这是困难的一点)。我将 git 推送到开发服务器,进入 Web 可访问文件夹之外的裸存储库,然后我使用接收后脚本将所有工作文件放入 webroot。但是,这会复制所有文件夹,显然我只想在操作完成后移动一个特定文件夹的内容。
做一些研究,看起来稀疏 checkout 很合适。更新:我现在让它工作,它将只复制一个特定的文件夹,但我仍然没有让它忽略文件夹本身并只提取内容。我认为这与我添加到 .git/info/sparse-checkout 的路径/通配符有关,但我不确定排除目录但不排除其内容的模式是什么。
有什么好的方法吗?我是否应该只使用接收后脚本手动复制我想要的目录的内容,而不是尝试使用稀疏 checkout 直接执行此操作?
我很感激任何人愿意提供的帮助。谢谢!
最佳答案
一个更简单的方法是:
- 在
/tmp/YourRepo/Yourdirectory
中执行稀疏检查(YourDirectory
是您试图忽略的那个,因为只有它的内容是感兴趣的) - 移动
/tmp/Yourdirectory
的内容到正确的目标目录
关于使用接收后脚本在远程上进行 Git sparse-checkout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11872745/