GIT签出显示文件编码错误

bon*_*ash 6 windows git character-encoding

最后的问题可能很愚蠢,但是...

我在Win 7环境中有一个本地GIT存储库,在Windows命令行中使用GIT。所有文件均采用UTF-8(无BOM),文本包含非ASCII符号(德语,俄语等),因此提交消息也是如此。有时我需要从过去的提交中调出一些数据,这些数据是非ASCII符号。但是gitkgitgit checkout <commit-hash>以非UTF-8编码(根据Notepad ++为默认ANSI)显示文件,当然会打破仅UTF-8的符号。退回HEAD即可恢复文件的编码。

我想念什么吗?也许需要进行一些GIT设置。我的猜测是git文件不是UTF-8,因此不能包含此类符号。

我也有提到非ASCII提交信息做工精细(git loggitk他们正确地显示,虽然我并没有改变CMD endoding)。

谢谢!


编辑:这是我的文件在gitk中或签出时的外观(注意注释行中的字符):

@import 'reset';
@import 'mixins';
@import 'animations';
@import 'variables';
@import 'helpers';

/* ==================== ???????„?‚?‹ ==================== */
@font-face{
    font-family:'ClearSans';
    src:url('../fonts/ClearSans-Medium.eot');
    src:url('../fonts/ClearSans-Medium.eot?#iefix') format('embedded-opentype'),
         url('../fonts/ClearSans-Medium.woff') format('woff'),
         url('../fonts/ClearSans-Medium.ttf') format('truetype'),
         url('../fonts/ClearSans-Medium.svg') format('svg');
    font-weight:normal;
    font-style:normal;
}
Run Code Online (Sandbox Code Playgroud)

小智 1

如果git checkout HEAD修复了这些文件,则意味着它们在旧提交中被损坏,然后被修复。Git 本身并不关心编码并同样好地跟踪任何文件,它只查看行结尾。