编辑: git不会破坏字符编码。这仍然是为了分享知识并避免其他人犯同样的错误。
上下文:我的企业使用svn存储库。我使用git-svn作为客户端与此存储库进行交互。项目中的所有文本文件都是(并且必须)使用Windows默认编码(cp -....)进行编码。我使用git-extensions,有时使用命令行来导航git。
我做了什么:在过去的3天里,我正在开发一项新功能,并且我做了很多本地提交。最后,我使用交互式rebase将所有这些提交压缩成一个,然后我使用git svn dcommit在一次提交中推送svn存储库中的所有内容。
当时发生的事情:一位同事告诉我,所有的口音都在我修改过的文件中,在我提交后的新文件中搞砸了。我之前已经安装了git + svn,已经在同一个存储库中提交了带重音的文本文件,这是我第一次遇到这个问题。
我的调查:我做了以下事情来调查:用notepad ++打开文件,并尝试使用最新的编码(包括Windows默认和UTF-8)来查看它们:没有一个可以正确显示重音,不同的重音总是由相同的奇怪字形序列呈现。
临时解决方法:我使用git扩展和" dcommited"快速创建了一个还原提交。它。
问题:我的企业svn存储库没问题,但现在我要解决以下两个问题:
任何人都可以提供一些线索(我对git来说比较新)?
答案 0 :(得分:22)
现在让我们揭示痛苦的事实(对我的自负感到痛苦,而不是git用户): 我确实搞乱了口音,而不是git。
我本可以删除那个错误地认为git可以搞砸口音的问题,但考虑到upvotes的数量,我认为比很多人犯了同样的错误,所以我选择回答我自己的问题是确定真相,也许在同样的情况下帮助人们:
再次感谢Dmitry Pavlenko向我提供有关如何调查此问题的说明。
+1到“git reflog”
快乐的口音修复; =)