Laravel项目文件全部重复,无法推送到GitHub求解决办法
Laravel项目文件重复无法推送到GitHub的解决方法
一、先定位重复根源
打开项目根目录的终端,执行命令查看目录结构:
- Mac/Linux:
ls -la - Windows(CMD):
dir - Windows(PowerShell):
Get-ChildItem
大概率是项目被嵌套复制(比如根目录下多了一层和项目同名的文件夹,里面是完整的项目文件),或是每个文件都生成了带后缀的副本(如file(1).php)。
二、批量删除重复文件
情况1:嵌套文件夹导致的全量重复
- 先把Git版本记录移到安全位置,避免误删:
# Mac/Linux mv .git ../temp-git # Windows PowerShell Move-Item .git ../temp-git - 删除嵌套的重复文件夹(假设嵌套文件夹名为
laravel-project):# Mac/Linux rm -rf laravel-project # Windows CMD rmdir /s laravel-project # Windows PowerShell Remove-Item laravel-project -Recurse -Force - 把Git版本记录移回项目根目录:
# Mac/Linux mv ../temp-git .git # Windows PowerShell Move-Item ../temp-git .git
情况2:单个文件带后缀的副本重复
根据副本的命名规则批量删除:
- 如果副本文件名带
(1):# Mac/Linux find . -type f -name "*\(1\)*" -delete # Windows PowerShell Get-ChildItem -Recurse -Filter "*`(1`)*" | Remove-Item -Force - 如果副本带其他后缀(如
_copy),把命令里的*(1)*改成*_copy*即可。
三、修复Git状态并推送
- 暂存所有删除变更:
git add -A - 提交变更:
git commit -m "fix: 删除重复文件" - 尝试正常推送:
git push - 如果提示推送失败(本地与远程差异过大),单人项目可使用强制推送(多人协作项目谨慎使用):
git push -f
四、后续预防
- 检查
.gitignore文件,确保已包含vendor/、node_modules/、.env等无需提交的文件,减少不必要的文件体积。 - 操作项目时避免将整个项目文件夹复制到当前项目根目录内。
内容的提问来源于stack exchange,提问作者Selene_jpg
相关产品推荐
相关产品推荐

