GIT与MacOSX上的Umlaut问题?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (62)

今天我在MacOSX上发现了一个Git的bug。

例如,我将在开始时提交一个名为überschrift.txt的带有德国特殊字符的文件。从命令git status我得到后续输出。

Users-iMac: user$ git status

On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   "U\314\210berschrift.txt"
nothing added to commit but untracked files present (use "git add" to track)

看来Git 1.7.2在MacOSX上遇到了德语特殊字符的问题。有办法让Git正确读取文件名吗?

提问于
用户回答回答于

在Mac上启用core.precomeunicode

git config --global core.precomposeunicode true
用户回答回答于

原因是文件系统如何存储文件名的不同实现。

在Unicode中,Ü可以用两种方式表示,一种是单独的,另一种是U +“结合umlaut character".”。一个Unicode字符串可以包含这两种形式,但由于它们都具有混淆性,文件系统通过将每个混合U设置为Ü或U +“组合umlaut character".”来规范化Unicode字符串。

Linux使用前一种称为Normal-Form-Composed(或NFC)的方法,Mac OS X使用后一种称为Normal-Form-Decomposed(NFD)的方法。

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动