cPanel Git仓库克隆为空,如何克隆public_html站点数据?
解决cPanel Git克隆空文件夹问题,完整获取public_html站点数据
首先得搞清楚:cPanel自带的Git工具默认创建的仓库要么是裸仓库,要么就只有基础配置文件,根本没自动把public_html里的站点内容纳入版本控制。你现在克隆出空文件夹,核心问题就是服务器端的仓库里没有实际的站点文件,再加上部署配置的逻辑没配合好。下面一步步帮你搞定:
第一步:把public_html的内容塞进服务器端的Git仓库
- 登录cPanel的终端(或者用SSH连接到你的服务器),先进入用户主目录:
cd /home/user/ - 找到cPanel创建的Git仓库路径,一般是
/home/user/repositories/你的仓库名.git。先把这个裸仓库改成非裸仓库,这样才能添加文件:cd /home/user/repositories/你的仓库名.git git config --bool core.bare false - 把
public_html里的所有文件复制到仓库目录:cp -R /home/user/public_html/* . - 现在把这些文件加入Git版本控制,提交初始版本:
这一步做完,服务器端的仓库就有了完整的站点内容。git add . git commit -m "Initial commit: 同步public_html全部站点文件"
第二步:优化你的.cPanel.yml部署配置
你当前的配置是把仓库文件复制到public_html,但如果仓库是空的自然没用。现在仓库有内容了,可以优化配置,避免覆盖缓存、日志这类不需要版本控制的文件:
--- deployment: tasks: - export DEPLOYPATH=/home/user/public_html/ # 排除不需要部署的目录/文件,根据你的站点实际情况调整 - /bin/cp -R --exclude='cache' --exclude='logs' --exclude='.htaccess' * $DEPLOYPATH # 可选:确保站点文件权限符合要求 - chmod -R 755 $DEPLOYPATH
第三步:本地重新克隆仓库
现在服务器端的仓库已经有内容了,在本地执行克隆命令,就能拿到完整的站点文件了:
git clone ssh://你的cPanel用户名@服务器IP:/home/user/repositories/你的仓库名.git
额外提醒
- 后续修改站点内容时,尽量在本地仓库操作,推送到服务器后,cPanel会自动执行
.cPanel.yml的部署任务,同步到public_html,避免直接修改服务器上的文件导致版本混乱。 - 如果遇到权限问题,检查下cPanel用户对仓库目录和
public_html是否有读写权限。
内容的提问来源于stack exchange,提问作者Anas Baig
相关产品推荐
相关产品推荐

