在我的存储库中,我在历史记录中提交了大文件,并且也出现在最新的提交中。
我想使用
git lfs migrate --no-rewrite
以便之前提交的 SHA 不会被更改。
但是
--no-rewrite
会用LFS对象更改历史记录中的所有大文件对象吗?
我可以使用“--everything”标志来更新所有远程分支吗?
我想使用
以便之前提交的 SHA 不会被更改。git lfs migrate --no-rewrite
据我所知,这个命令根本不是为了将引用迁移到 LFS。相反,添加它是为了在
.gitattributes
指定文件应存储为 LFS 指针的情况下纠正不正确的存储库状态,但实际上它是“按原样”存储的。例如,请参阅以下答案:Git 错误:遇到 7 个本应是指针的文件,但不是
要了解该主题,以下链接也可能有用:
n
本应是指针的文件,但不是
--no-rewrite
会用LFS对象更改历史记录中的所有大文件对象吗?
不能,因为根据定义直接从存储库存储中排除大文件数据本身需要重写历史记录以从中删除对象。
另外,我可以使用
--everything
标志来更新所有远程分支吗?
--everything
标志不能与
--no-rewrite
一起使用,因为后者会导致新的提交,因此只有HEAD
被暗示和影响。