恢复使用 git 错误地转换行尾的 blob



我在 git 中有一个历史记录,在提交A中,我们有一个.gitattributes文件与

* text eol=lf

显然是错误的,因为它会在签入之前将所有路径转换为 LF 甚至二进制文件。 所以发生了这种情况,我想知道是否可以恢复历史记录中的二进制文件/blobF已损坏(因为 crlf 已转换为 lf(,以便撤消转换。

如果该程序适用,我会以某种方式将其应用于git filter-branch......

PS:我在master上到处都有更正的.gitattribute文件,创造了新的历史记录

* text=auto eol=lf

new-master一个新的孤儿分支,并将整个master重新定位到该分支上。但这并不能解决问题,文件/blob 当然会损坏......

如果存储在 Git 存储库中的数据不是您要存储的数据,则任何 Git 命令都无法找到您要存储的数据。

换句话说:不,没有办法从错误的数据中获取正确的数据。 如果你在某处有正确的数据,那就是你得到正确数据的地方。

git filter-branch(或新的和改进的git filter-repo(所能做的就是复制每个原始提交,并应用一些过滤器集。 现有的原始提交及其原始快照在存储库中保留一段时间;新提交及其新快照是使用更新的分支名称查找提交时会找到的提交。

最新更新