Git配置疑问:推送Laravel项目时连带上传上级文件夹原因
排查推送Bitbucket时包含上级文件夹的问题
听起来你遇到的问题我之前踩过坑——明明在目标文件夹MFS里初始化了Git,结果推送后连上级文件夹都上去了,大概率是工作目录或Git跟踪范围出了问题,咱们一步步排查:
1. 确认你真的在MFS目录里操作Git
很多时候是终端当前路径搞错了!别光看文件夹窗口,用命令确认:
- 在终端执行
pwd(Linux/macOS)或cd(Windows命令提示符),看输出的是不是MFS的绝对路径? - 再执行
git rev-parse --show-toplevel,这个命令会直接显示当前Git仓库的根目录。如果输出不是MFS的路径,说明你要么在上级目录也初始化了Git,要么是cd到MFS之前就执行了Git命令。
如果发现仓库根目录不对,先删除上级目录里的.git文件夹(注意别删错!),然后重新进入MFS目录从头操作。
2. 检查Git是否意外跟踪了上级文件夹
如果仓库根目录确实是MFS,那可能是你不小心把上级目录的内容加入了跟踪。执行:
git ls-tree -r master --name-only
这个命令会列出当前仓库里所有被跟踪的文件/文件夹。如果输出里有上级文件夹的名字,说明它被误加了,赶紧移除:
git rm --cached ../上级文件夹名 # 注意:--cached参数只会移除Git跟踪,不会删除本地文件
然后提交这个修改:
git commit -m "Remove accidentally tracked parent directory"
3. 重新执行正确的推送流程
确保每一步都在MFS目录内:
- 切换到
MFS:cd /path/to/your/MFS - (如果之前的仓库有问题,先删除
.git文件夹重新初始化)git init - 添加
MFS内的所有内容:git add .(这里的.代表当前目录,也就是MFS) - 提交初始版本:
git commit -m "Initial commit of MFS project files" - 关联远程仓库:
git remote add origin your-bitbucket-repo-url - 推送:
git push -u origin master
4. 清理远程仓库的旧内容
如果之前已经推错了内容到Bitbucket,即使本地修正后,远程仓库里的旧文件还会存在。这时候可以强制推送覆盖(因为你是空白新项目,不用担心冲突):
git push -f origin master
如果做完这些还是有问题,再检查下MFS里的.gitignore有没有奇怪的规则,但大概率是前面几步里的路径或跟踪问题导致的。
内容的提问来源于stack exchange,提问作者sesc360
相关产品推荐
相关产品推荐

