我最近注意到我的文本编辑器使用的项目文件(以及其他一些垃圾文件)为项目添加了git存储库。因为它们实际上并不是项目的一部分,所以我想删除它们,但git rm
不会从存储库中删除旧版本,而且我也找不到其他任何看起来很有前途的东西。如何从git存储库中完全删除文件?
回答
你想要的工具是git filter-branch
。它的使用说明here,但基本上是:
$ git filter-branch --tree-filter 'rm -f my_file' HEAD
将从每提交删除 “my_file”。
请注意,这将重写所有提交,因此如果您推入远程存储库,则必须(a)强制更新,并且(b)其他所有从您那里提取的人现在都会有重复的提交(因为您重写了历史),如git rebase
man page所述。
我建议添加'--prune-empty',这样生成的任何空提交都将被删除太。 – fnkr 2014-08-28 07:21:14
这是如何工作在不同目录中具有相同名称的许多文件的存储库?它是否删除所有具有相同名称的文件? – CodeMonkey 2016-11-21 10:01:20
@CodeMonkey:在这种情况下,您将使用更长,唯一的路径。 – mipadi 2016-11-21 19:27:32
这是git filter-branch
的用途,但请注意,您的repo历史记录将会更改,并且历史记录重写后提交哈希将会有所不同。
如果你还想释放空间,我建议你使用git forget-blob
,因为git filter-branch
本身不会让git忘记你的文件,因为它仍然可以被遥控器,reflog,标签等引用。
git forget-blob main.c.swp
你可以得到更多的信息here
- 1. 完全删除git存储库
- 2. git - 从存储库中删除文件
- 3. 如何从Git存储库中删除“排除的”文件?
- 4. 如何完全删除存储库中的文件?
- 5. 如何从ditwich从git存储库中删除文件?
- 6. 如何从git存储库中删除或忽略.rb〜文件?
- 7. 如何让git从存储库中删除文件
- 8. 如何从git存储库中删除* ALL *文件和目录?
- 9. 如何从git裸远程存储库中删除文件?
- 10. 如何使用Windows Tortoise从Git存储库中删除文件?
- 11. 如何从Mercurial存储库中完全删除某些内容?
- 12. git从存储中删除文件
- 13. 从存储库中删除git corrupt blob
- 14. Git:从存储库中删除凭证
- 15. 意外从Git存储库中删除
- 16. Git从存储库中删除* .sln.docstates
- 17. 使用SVN完全删除存储库
- 18. 如何在不删除Git历史记录的情况下从git存储库中删除文件/文件夹
- 19. 如何/我可以在git存储库中完全删除变更集?
- 20. 我该如何从git仓库中完全删除数据?
- 21. 如何从git添加索引中删除文件,而无需从任何存储库本地删除文件
- 22. 从存储库中删除Thumbs.db文件
- 23. 无法从git存储库中删除文件?
- 24. git - 无法从存储库中永久删除文件
- 25. 明确从git存储库中删除文件
- 26. git从上游(github)存储库中删除文件
- 27. git从存储库中删除文件和旧提交
- 28. 从git存储库中删除文件而不克隆它
- 29. 如何从存储中删除文件
- 30. JGit删除git存储库
部分重复,由以前的问题肯定覆盖:http://stackoverflow.com/questions/307828/git-remove-file-accidentally-added-to -the-repository http://stackoverflow.com/questions/1216733/remove-a-directory-permanently-from-git – Cascabel 2010-08-11 13:25:24