编辑: git 不会混淆字符编码。这仍然是为了分享知识并避免其他人犯同样的错误。
上下文:我的企业使用 svn 存储库。我使用 git-svn 作为客户端来与这个存储库进行交互。项目中的所有文本文件都(并且必须)使用 Windows 默认编码 (cp-....) 进行编码。我使用 git 扩展,有时使用命令行来引导 git。
我做了什么:在过去的 3 天里,我正在开发一个新功能,并且我做了一些本地提交。最后,我使用交互式 rebase 将所有这些提交压缩为一个,然后我使用 git svn dcommit 在单个提交中推送 svn 存储库中的所有内容。
然后发生了什么:一位同事告诉我,我修改的文件以及提交后的新文件中的所有口音都搞砸了。我之前已经在安装 git + svn 的同一个存储库中提交了带有重音符号的文本文件,这是我第一次遇到这个问题。
我的调查:我做了以下事情来调查:用notepad++打开文件,并尝试了最新的编码(包括windows默认和UTF-8)来查看它们:它们都不能正确显示重音,并且总是呈现不同的重音通过相同的奇怪字形序列。
临时解决方法:我快速创建了一个带有 git 扩展的还原提交并“dcommited”它。
问题:我的企业svn存储库还可以,但是现在我有以下两个问题要解决:
- 了解带有重音符号的字符发生了什么
- 从 SVN 历史记录中检索我的工作并以适当的方式提交(如果可能,无需手动查看所有带重音符号的字符)
谁能提供一些线索(我对 git 很陌生)?