You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Git仓库子目录检出到当前目录?Web主机同步配置指引

实现Web主机文件夹跟踪远程Git仓库指定子目录

这是个非常典型的场景——只想同步远程仓库里的特定子目录到本地指定文件夹,而且完全不需要向远程推送内容。下面提供两种可靠的方法,你可以根据自己的偏好选择:

方法一:使用Git Subtree(推荐,直接将子目录内容同步到目标文件夹根目录)

这种方法能直接把远程仓库的directory2子目录内容拉取到/path/public_html的根目录,后续更新也很方便:

  1. 进入目标文件夹并初始化Git仓库:
cd /path/public_html
git init
  1. 添加远程仓库地址(替换成你的实际远程仓库URL):
git remote add origin <你的远程Git仓库URL>
  1. 首次拉取directory2的内容到当前目录:
git subtree add --prefix=./ origin main:directory2 --squash
  • --prefix=./:指定把远程子目录拉取到当前目录(也就是public_html根目录)
  • main:替换成远程仓库的实际分支名(比如master)
  • directory2:远程仓库中你要跟踪的子目录路径
  • --squash:可选参数,用来压缩提交历史,避免拉取过多冗余历史记录
  1. 后续要更新public_html到远程directory2的最新版本时,只需执行:
git subtree pull --prefix=./ origin main:directory2 --squash

方法二:使用Git稀疏检出(保留目录结构,适合需要保留原目录层级的场景)

如果你希望public_html里保留directory2文件夹(即public_html/directory2/对应远程的directory2/),可以用稀疏检出:

  1. 进入目标文件夹并初始化Git仓库:
cd /path/public_html
git init
  1. 添加远程仓库地址:
git remote add origin <你的远程Git仓库URL>
  1. 启用稀疏检出功能:
git config core.sparseCheckout true
  1. 指定要跟踪的子目录,写入稀疏检出配置文件:
echo "directory2/" >> .git/info/sparse-checkout
  • 末尾的斜杠/确保只匹配目录,避免和同名文件混淆
  1. 首次拉取远程分支内容:
git pull origin main

拉取完成后,public_html里只会出现directory2文件夹,里面的内容和远程仓库一致。

  1. 后续更新时,直接执行拉取命令即可:
git pull origin main

注意事项

  • 如果你不需要保留Git历史,可以在拉取后删除.git文件夹,但这样就无法用Git后续更新了,不推荐。
  • 确保Web主机环境已经安装了Git,且你有操作/path/public_html目录的权限。

内容的提问来源于stack exchange,提问作者Gleb Varenov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:22:05