我在 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
(所能做的就是复制每个原始提交,并应用一些过滤器集。 现有的原始提交及其原始快照在存储库中保留一段时间;新提交及其新快照是使用更新的分支名称查找提交时会找到的提交。