Git创建.bundle文件后克隆得到空文件夹的问题排查
问题根因
你漏了bundle生成时的默认HEAD引用配置,直接执行git clone test.bundle时Git找不到默认要检出的分支,不会把main分支的文件拉到工作区,所以看起来是空文件夹——实际上隐藏的.git目录是存在的,只是没有检出任何分支的文件。
你之前执行的git bundle create test.bundle main只打包了main分支的提交对象,没有把「默认指向main分支的HEAD指针」打包进bundle,克隆程序无法判断初始化仓库后要切到哪个分支,就不会执行检出操作,工作区自然是空的。
解决方法
方案1:重新生成正确的bundle文件(推荐)
生成bundle时把HEAD引用一起打包,显式指定默认分支为main:
git bundle create test.bundle HEAD main
小提示:每次生成bundle后都可以先执行
git bundle verify test.bundle校验文件有效性,命令会输出bundle包含的引用、提交范围,确认没有缺失依赖再做分发或者克隆验证,能避免很多无效操作。
校验通过后再执行git clone test.bundle,就会自动检出main分支的全部内容,不会出现空文件夹。
方案2:不重新生成bundle,克隆时显式指定分支
如果不想重新打包,克隆现有test.bundle的时候加上-b参数指定要检出的main分支即可:
git clone -b main test.bundle
克隆完成后进入目录就能看到你提交的所有代码内容。
内容的提问来源于stack exchange,提问作者Lemon_prog
相关产品推荐
相关产品推荐

