我的文件在我的Git存储库中有多个提交,它是以16位Unicode(UCS-2)编码,由Windows使用。
因此,Git认为它是一个二进制文件,而不是文本文件,我看不到不同提交所做的更改。
有没有办法将该文件追溯转换为UTF-8,即重建历史记录,就像文件一直是UTF-8一样,我一直把它作为UTF-8文件提交,而不是16 -bit Unicode文件?
答案 0 :(得分:5)
要追溯重新编码文件,请使用git filter-branch
:
git filter-branch --tree-filter 'recode utf-16..utf-8 file'
如果您没有recode
,请改用较长的iconv -f utf-16 -t utf-8 file -o file
。如果该文件在早期版本的树中不存在,则可能需要附加|| true
以使重新编码命令不会失败,并可选择抑制错误输出。