Github和文件编码差异
我们正在使用GitHub进行一个项目。最近,我们意识到我们在两台计算机中使用了不同的编码(一个分支使用ISO8859-1,另一个分支使用UTF-8)。我们最终成功地将这两个分支转换为UTF-8。转换是在本地为每个分支完成的(在Submite中使用“SavewithEncodign”),然后推送到源代码 问题在于运行--diff或使用web compare检查分支的可合并性时。GitHub向我展示了许多不同之处,即使文件看起来相同,例如:Github和文件编码差异,git,github,character-encoding,Git,Github,Character Encoding,我们正在使用GitHub进行一个项目。最近,我们意识到我们在两台计算机中使用了不同的编码(一个分支使用ISO8859-1,另一个分支使用UTF-8)。我们最终成功地将这两个分支转换为UTF-8。转换是在本地为每个分支完成的(在Submite中使用“SavewithEncodign”),然后推送到源代码 问题在于运行--diff或使用web compare检查分支的可合并性时。GitHub向我展示了许多不同之处,即使文件看起来相同,例如: -#bit leds = latB.2
-#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编码的,并且在编辑器中看起来还可以(升华)(没有编码问题)。我不明白为什么GitHub会向我展示这些差异(有数千个)。在我必须通过手动合并,逐行检查之前,我可以检查或做什么
提前感谢我认为问题在于“á”在UTF-8和ISO8859-1中的编码不同(最有可能在UTF-8中的2个字节上)。 如果您能够重写git历史记录,则可以使用git filter分支--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
试着传递--忽略对差异的空间更改。升华可能已将选项卡更改为空格或行尾。忘记提及…这是我在控制台中使用--diff时看到的:-#bit led=latB.2//led de cámara-#bit ledsTris=trisB.2//led de cámara TRIS+#bit led=latB.2//led de cmara+#bitledsTris=trisB.2//Leds de cmara TRIS(它显示出不同的特性!)