如何将本地Git代码部署到Web服务器远程仓库并展示项目文件?
解决Bare Git仓库部署后网页项目不可见的问题
很高兴你已经通过@muecas的评论解决了问题!我还是把这个实用的解决方案整理出来,方便其他遇到同样困惑的开发者参考:
你已经完成了bare仓库的初始化和远程推送配置,核心问题确实是bare仓库本身没有工作树,无法直接存放可访问的项目文件。这时候我们可以通过指定--work-tree和--git-dir参数,让Git把代码检出到Web服务器的网页根目录,具体操作如下:
- 首先在Web服务器上确认你的网页根目录(比如常见的
/var/www/my-web-project),如果目录不存在,先创建它:mkdir -p /var/www/my-web-project - 直接执行检出命令,将bare仓库的
develop分支内容同步到网页目录:
这里的git --git-dir=/path/to/git-repo/my-repo.git --work-tree=/var/www/my-web-project checkout -f develop-f是强制覆盖参数,确保网页目录的内容和仓库分支完全一致。
如果想让后续推送更自动化,不用每次手动执行检出,可以给bare仓库添加配置:
cd /path/to/git-repo/my-repo.git # 绑定工作树到网页根目录 git config core.worktree /var/www/my-web-project # 临时关闭bare模式以便处理工作树 git config core.bare false # 设置推送时自动更新当前分支对应的工作树 git config receive.denyCurrentBranch updateInstead
配置完成后,之后你在本地执行git push develop develop时,服务器会自动把最新的代码同步到网页目录,无需再手动操作。
最后提个小建议:尽量把bare仓库放在非Web访问目录下(就像你现在的做法一样),只让网页根目录存放项目文件,这样能避免仓库文件被公开访问,提升安全性。
内容的提问来源于stack exchange,提问作者Froxx
相关产品推荐
相关产品推荐

