向NAS上的裸Git仓库推送成功后无法看到新增文件该如何处理?
问题解答
为什么NAS服务端项目目录看不到提交的新增文件
你在NAS上执行git --bare init my_project初始化的是裸仓库,这是Git专门设计用于远程共享的仓库形态:
- 裸仓库默认没有工作区,不会存储可直接预览的普通项目文件,仅会保存Git的版本元数据、提交记录、分支、标签等内容,所以你直接进入裸仓库目录看不到提交的文件属于完全正常的情况。
如果你需要NAS上也能展示实际的项目文件,可以选择以下两种方案:
- 方案1:替换裸仓库为普通仓库,在NAS上用
git init重新初始化项目,同时执行git config receive.denyCurrentBranch updateInstead配置,允许直接推送到当前分支,后续本地推送完成后,NAS上的仓库工作区会自动更新显示最新文件。 - 方案2:保留现有裸仓库,在NAS上额外新建一个普通目录作为工作区,执行
git clone 本地裸仓库路径拉取项目,后续每次本地推送完成后,进入该工作目录执行git pull即可同步最新文件。如果需要自动同步,可以给裸仓库配置post-receive钩子,触发推送后自动执行工作区的拉取操作。
日志中Pushing to和To字段路径一致是否属于异常
该情况完全正常,无任何异常问题:
Pushing to是Git推送操作启动时打印的目标远程地址To是推送操作执行完成后,Git回显的实际推送成功的目标地址
两个地址一致说明你的远程仓库地址没有被重定向、替换,整个推送流程的目标地址没有发生变化,属于推送成功的正常日志输出。
内容的提问来源于stack exchange,提问作者simon
相关产品推荐
相关产品推荐

