在将文件移动到LFS之后,如何从git数据库中删除该文件?
我有一些在git中意外跟踪的大文件。直到后来我才意识到。我将这些文件移到git LFS中,但现在我想将它们从我的正常git数据库中删除,因为它们的增量占用了大量空间 请注意,所有解决方案都是历史重写,这需要与所有复制了回购协议的人进行一定程度的协调,以避免您的工作被撤销 有三种工具可以处理此问题,每种工具都有其优点和缺点: 最适合您的是在将文件移动到LFS之后,如何从git数据库中删除该文件?,git,git-lfs,Git,Git Lfs,我有一些在git中意外跟踪的大文件。直到后来我才意识到。我将这些文件移到git LFS中,但现在我想将它们从我的正常git数据库中删除,因为它们的增量占用了大量空间 请注意,所有解决方案都是历史重写,这需要与所有复制了回购协议的人进行一定程度的协调,以避免您的工作被撤销 有三种工具可以处理此问题,每种工具都有其优点和缺点: 最适合您的是lfs migrate 另一个选择是BFG。根据我的经验,与lfs相比,它在某些方面做得稍微好一些,而在其他方面则不太好。如果你不想破坏历史,它还可以选择只删除大
lfs migrate
另一个选择是BFG。根据我的经验,与lfs相比,它在某些方面做得稍微好一些,而在其他方面则不太好。如果你不想破坏历史,它还可以选择只删除大文件而不替换指针文件
或者,如果您想坚持使用git内置命令,可以使用git过滤器分支
(但它会更慢、更难)。您可以将索引过滤器设置为git rm--cached--ignore unmatch
受影响的路径(如果它们没有移动)。这可能会很慢,并且会中断受影响的提交。您可以改为使用树过滤器
,用适当的指针文件替换受影响的路径,并插入适当的.gittattributes
文件。这甚至更慢(而且可能更难做到正确)