有什么昵称不存在 2024-02-22 18:47 采纳率: 66.7%
浏览 7
已结题

git 提交的幽灵文件如何删除

问题描述:
将项目上传到gitee,重新git clone 出现看不见的幽灵文件该如何删除?
1)第一次git 提交了项目所有文件,无.gitignore文件,包含了生成编译文件的build文件夹
2)第二次在本地删除了build 文件夹后git 提交
3)第三次加入.gitignore文件后提交,本地无build文件夹
4)重新git clone 该项目后,项目文件夹内无build文件夹,但是用du -sh 命令查看文件夹大小约40M,
du -sh * 查看的文件大小加起来应该不超过1M,在Windows下查看也是类似的,属性显示有很多文件夹,但是看不到,请问这多余的空间是被什么东西占用了呢?有什么解决办法吗?提前谢谢各位!

5)尝试使用过git rm -r --cached . 等命令但是无法解决这个问题

  • 写回答

2条回答 默认 最新

  • 爱喝兽奶的荒天帝 全栈领域新星创作者 2024-02-22 18:50
    关注

    在Git中,删除了文件或文件夹后,它们仍然会留在Git历史记录中,并且在克隆时也会被包含在其中。这可能导致你在克隆后看到项目文件夹内有一些看不见的"幽灵"文件或文件夹。

    要解决这个问题,你可以尝试以下方法:

    • 清理Git历史记录:使用git filter-branch命令来清理Git历史记录中的幽灵文件或文件夹。这个命令可以修改Git历史记录,将指定的文件或文件夹完全删除。请注意,这个操作是不可逆的,执行前请确保备份好项目。
    git filter-branch --force --index-filter 'git rm -r --cached --ignore-unmatch 文件或文件夹路径' --prune-empty --tag-name-filter cat -- --all
    
    • 强制更新远程仓库:完成Git历史记录的清理后,你需要强制更新远程仓库以应用这些更改。
    git push origin --force --all
    

    注意:使用--force选项可能会覆盖远程仓库中的其他更改,请谨慎操作。

    • 克隆项目:现在,你可以尝试重新克隆项目,新克隆的项目将不再包含幽灵文件或文件夹。

    如果以上方法无法解决问题,你还可以考虑使用其他工具如BFG Repo-Cleaner来清理Git历史记录中的幽灵文件或文件夹。

    请注意,在执行任何操作之前,请确保备份好项目,以免数据丢失。

    如果该回答解决了您的问题,请采纳一下,谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月2日
  • 已采纳回答 2月23日
  • 创建了问题 2月22日

悬赏问题

  • ¥15 100 内验证哥德巴赫巴赫猜想
  • ¥15 需要在vitis下实现彩调视频图像累加,并输出
  • ¥15 解决不了的LNK2019错误
  • ¥20 MATLAB仿真三相桥式全控整流电路
  • ¥15 EDA技术关于时序电路设计
  • ¥15 百度文心一言流式返回sse失败
  • ¥15 由于远程方已关闭传输流,身份验证失败
  • ¥15 rt-detr,PCB,目标检测
  • ¥15 有偿求指导实证代码。cfps清洗合并后,无论是构建平衡面板还是非平衡面板,都是只剩几百个样本量。求指导一下哪里出问题了,不要潦草回复
  • ¥15 mutlinichenet