Mac环境下如何向已有Git仓库上传含内容的指定子文件夹?
解决Mac环境下Git上传含内容文件夹仅创建空文件夹的问题
你遇到的create mode 160000提示,说明本地的my folder是一个独立的Git仓库(嵌套仓库),Git默认将其识别为子模块,仅提交了一个指向该子仓库的gitlink,导致远程仓库显示空文件夹。以下是两种场景的解决方案:
情况1:将嵌套仓库内容合并到主仓库(不保留独立Git历史)
- 进入本地的
my folder目录,删除隐藏的.git文件夹:
(Mac下隐藏文件可通过rm -rf "my folder/.git"cmd+shift+.临时显示,确认.git存在后再执行删除) - 返回主仓库根目录,添加文件夹及所有内容(注意末尾的斜杠):
git add "my folder/" - 提交并推送:
git commit -m "添加my folder文件夹及全部内容" git push -u origin master
情况2:将内容上传到主仓库的指定子文件夹
假设主仓库中目标子文件夹为target-subfolder:
- 先拉取主仓库最新代码,避免冲突:
git pull origin master - 若目标子文件夹不存在,创建它:
mkdir -p target-subfolder - 将本地
my folder内的所有内容移动到目标子文件夹:mv "my folder"/* target-subfolder/ - 添加目标子文件夹及内容:
git add target-subfolder/ - 提交并推送:
git commit -m "将my folder内容上传至target-subfolder" git push -u origin master
注意事项
- Mac下处理带空格的文件夹名,需用引号包裹(如
"my folder")或反斜杠转义(如my\ folder) - 执行
git add时必须添加末尾的斜杠,确保Git识别为普通文件夹并添加内部所有内容,而非子模块
内容的提问来源于stack exchange,提问作者Tristan Tran
相关产品推荐
相关产品推荐

