更改文件的编码时,git不会将crlf更改为lf

时间:2017-11-03 09:42:48

标签: windows git

我已经签入了utf-16文件.Git将其视为binary文件。

步骤: 在Windows中:

  1. 我在Windows中将文件的编码更改为utf-8。
  2. 我承诺改变。
  3. 在linux中:

    1. 我拉开了分店。
    2. 在git状态下,我看到该文件已被修改,即使我没有在此回购中触及它。
    3. 原因:git没有在上面的第2步中将crlf更改为lf。

      如果我在linux中进行相同的练习然后拉入窗口,那就不是问题了。

      在diff或commit期间,它表示:warning: CRLF will be replaced by LF in Foo.xml

      当目标文件格式被文本识别为时,git没有自动将crlf更改为lf的原因是什么?

      注意:我有很多其他文件,并且使用它们crlf-lf转换效果很好。只有在将git识别的格式的编码改为二进制(这里是utf-16)到utf-8(git的文本格式)时,它才会进行转换。

      是因为提交中的基线是二进制文件吗? 此外,它至少在Linux中运行正常。

      我的观察是否正确?

1 个答案:

答案 0 :(得分:0)

更改编码后,git rm --cached file_name && git add file_name效果很好。

这样git会对文件进行更新的编码。