为什么我的代码中的这个撇号显示为< ##>在git / bash?

时间:2017-06-14 20:56:34

标签: windows git bash

我的代码如下:

specifies the maximum points’ interval during

(在评论中)。当我在Git for Windows提供的bash shell中使用git diff时,我得到了这个:

 specifies the maximum points<92> interval during 

我认为这对某些人来说是一个简单的问题,而且我也希望我的文本文件不会以不稳定的方式编码。

1 个答案:

答案 0 :(得分:0)

从文档中,我希望这会有所帮助:

  

Git在某种程度上是字符编码不可知的。

     

blob对象的内容是未解释的字节序列。核心级别没有编码翻译。

     

路径名以UTF-8规范化形式C编码。这适用于树对象,索引文件,ref名称,以及命令行参数,环境变量和配置文件中的路径名(.git / config(请参阅git-config [1]),gitignore [5],gitattributes [5]和gitmodules [5])。

     

请注意,核心级别的Git仅将路径名称视为非NUL字节序列,没有路径名称编码转换(Mac和Windows除外)。因此,即使在使用传统扩展ASCII编码的平台和文件系统上,使用非ASCII路径名也会起作用。但是,在此类系统上创建的存储库将无法在基于UTF-8的系统(例如Linux,Mac,Windows)上正常工作,反之亦然。此外,许多基于Git的工具只是假设路径名为UTF-8,并且无法正确显示其他编码。

     

提交日志消息通常以UTF-8编码,但也支持其他扩展ASCII编码。这包括ISO-8859-x,CP125x和许多其他,但不包括UTF-16/32,EBCDIC和CJK多字节编码(GBK,Shift-JIS,Big5,EUC-x,CP9xx等)。

     

虽然我们鼓励提交日志消息以UTF-8编码,但核心和Git瓷器都不是为了强制项目使用UTF-8。如果特定项目的所有参与者发现使用遗留编码更方便,Git不会禁止它。但是,有一些事情需要牢记。

     如果给定的提交日志消息看起来不像有效的UTF-8字符串,则git commit和git commit-tree会发出警告,除非您明确说明您的项目使用了旧式编码。说这个的方法是在.git / config文件中使用i18n.commitencoding,如下所示:

     

[I18N]         commitencoding = ISO-8859-1

     

使用上述设置创建的提交对象在其编码标头中记录i18n.commitencoding的值。这是为了帮助其他人以后再看。缺少此标头意味着提交日志消息以UTF-8编码。

     

git log,git show,git blame和friends查看提交对象的编码头,并尝试将日志消息重新编码为UTF-8,除非另有说明。您可以使用.git / config文件中的i18n.logoutputencoding指定所需的输出编码,如下所示:

     

[I18N]         logoutputencoding = ISO-8859-1

     

如果您没有此配置变量,则使用i18n.commitencoding的值。

     

请注意,我们故意选择在提交以在提交对象级别强制使用UTF-8时不重新编写提交日志消息,因为重新编码为UTF-8不一定是可逆操作。