Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在将文件移动到LFS之后,如何从git数据库中删除该文件?_Git_Git Lfs - Fatal编程技术网

在将文件移动到LFS之后,如何从git数据库中删除该文件?

在将文件移动到LFS之后,如何从git数据库中删除该文件?,git,git-lfs,Git,Git Lfs,我有一些在git中意外跟踪的大文件。直到后来我才意识到。我将这些文件移到git LFS中,但现在我想将它们从我的正常git数据库中删除,因为它们的增量占用了大量空间 请注意,所有解决方案都是历史重写,这需要与所有复制了回购协议的人进行一定程度的协调,以避免您的工作被撤销 有三种工具可以处理此问题,每种工具都有其优点和缺点: 最适合您的是lfs migrate 另一个选择是BFG。根据我的经验,与lfs相比,它在某些方面做得稍微好一些,而在其他方面则不太好。如果你不想破坏历史,它还可以选择只删除大

我有一些在git中意外跟踪的大文件。直到后来我才意识到。我将这些文件移到git LFS中,但现在我想将它们从我的正常git数据库中删除,因为它们的增量占用了大量空间

请注意,所有解决方案都是历史重写,这需要与所有复制了回购协议的人进行一定程度的协调,以避免您的工作被撤销

有三种工具可以处理此问题,每种工具都有其优点和缺点:

最适合您的是
lfs migrate

另一个选择是BFG。根据我的经验,与lfs相比,它在某些方面做得稍微好一些,而在其他方面则不太好。如果你不想破坏历史,它还可以选择只删除大文件而不替换指针文件

或者,如果您想坚持使用git内置命令,可以使用
git过滤器分支
(但它会更慢、更难)。您可以将
索引过滤器设置为
git rm--cached--ignore unmatch
受影响的路径(如果它们没有移动)。这可能会很慢,并且会中断受影响的提交。您可以改为使用
树过滤器
,用适当的指针文件替换受影响的路径,并插入适当的
.gittattributes
文件。这甚至更慢(而且可能更难做到正确)