Github和文件编码差异

时间:2018-07-20 13:33:44

标签: git github character-encoding

我们正在使用GitHub进行项目。最近,我们意识到我们在两台计算机上都使用了不同的编码(一个分支使用ISO8859-1,另一个分支使用UTF-8)。我们最终设法将两个分支都转换为UTF-8。会话是在每个分支的本地进行的(使用Sublime中的“保存带有Encodign的代码”),然后推送到源头。

问题是在运行--diff或使用Web Compare检查分支的可合并性时。 GitHub给我展示了很多差异,即使文件看起来一样,例如:

-#bit leds      = latB.2               //Leds de cámara 
-#bit ledsTris  = trisB.2              //Leds de cámara TRIS 
+#bit leds      = latB.2               //Leds de cámara 
+#bit ledsTris  = trisB.2              //Leds de cámara TRIS 

此外,如果我从不同的PC提取数据,则所有内容均经过UTF-8编码,并且在编辑器中(Sublime)看起来不错(没有编码问题)。我不明白为什么GitHub会向我显示这些差异(有数千个)。在必须逐行进行细致的手动合并之前,我应该检查或做什么?

预先感谢

1 个答案:

答案 0 :(得分:0)

我认为问题在于'á'在UTF-8和ISO8859-1中的编码方式不同(并且很可能在UTF-8中使用2个字节)。 如果您能够重写git历史记录,则可以使用git filter-branch --treefilter更改所有使用iconv提交的文件的编码:

git filter-branch -f --tree-filter 'for f in $(find ./ -type f -name "*" |grep -v .git); do iconv -f ISO8859-1 -t UTF-8 $f; done' HEAD