Git和PowerShell以及德国变形金刚

时间:2012-01-20 21:57:48

标签: git powershell utf-8 msysgit

我一直在努力教导msysgit如何处理德语变音符号(äöü),例如提交评论。没有运气.....

所以我想我可能会尝试使用PowerShell及其git集成(PoshGit)。但又一次 - 没有运气:

D:\temp\test [ +12 ~0 -0 !]> git add --all

D:\temp\test [ +12 ~0 -0]> git commit -m "Einige Dateien hinzugefügt"
  Warning: commit message does not conform to UTF-8.
  You may want to amend it after fixing the message, or set the config
  variable i18n.commitencoding to the encoding your project uses.
  [master (root-commit) 085b7d6] Einige Dateien hinzugef?gt
     12 files changed, 3320 insertions(+), 0 deletions(-)

(“EinigeDateienhinzugefügt”=添加了一些文件)

有趣 - 我可以宣誓德国变音符号是UTF-8标准的一部分......嗯......

果然:

D:\temp\test [master]> git log

  085b7d6 (HEAD, master) Einige Dateien hinzugef<FC>gt [Marc Scheuner] [4 seconds ago]

没有香蕉:-(

地球上的什么我必须做的是让msysgit(“Git bash”)或PowerShell在提交评论中与Git合作?我甚至都没有要求用变音符号支持文件名...现在只是评论(纯文本)......

另外:把这个

[i18n]
commitencoding = ISO-8859-1
logoutputencoding = ISO-8859-1

进入我的.gitconfig对我的提交评论和git log ....似乎没有任何影响: - (

有什么想法吗?思考?指针??

5 个答案:

答案 0 :(得分:1)

MSysGit和unicode以及简单的外壳存在已知的怪癖和问题。如果我在你的脚下,我会使用带有小型Linux服务器映像的VritualBox(不需要桌面),而是使用主机和客户操作系统之间的共享目录,而不是挣扎。这样你可以在Linux中使用Git但在Windows上开发。打开远程服务器的终端,你可以像使用MSysGit一样alt + TAB到窗口。

答案 1 :(得分:1)

您可能想尝试一下实验Unicode version of msysgit的非正式安装程序。 msysgit邮件列表中对该安装程序的反馈表示赞赏。

答案 2 :(得分:1)

我有同样的问题(我来自瑞典)。似乎如果你使用Git Extensions并提交,那么变音字符就可以了。我用:

 [i18n]
 commitencoding = windows-1252
 logoutputencoding = Windows-1252
 filesEncoding = Windows-1252

虽然会喜欢PowerShell /命令行问题的解决方案。

答案 3 :(得分:0)

检查$ HOME / .gitconfig(在Linux中)或%USERPROFILE%\。gitconfig(在Windows中)文件中的编码字符集,其中包含以下内容:

[user]
  name = Your Name
...

我认为在您的情况下,此文件使用ISO-8859-1编码(您的名称不仅包含ASCII字符),但您的项目设置适用于UTF-8。

昨天我遇到了同样的情况,将.gitconfig文件的charset更改为UTF-8解决了这个问题。

答案 4 :(得分:0)

我通过PUTTY使用命令行与git有同样的问题。 我的解决方案是:更改字符集的PUTTY配置,如下所述:http://thegreyblog.blogspot.de/2009/08/configuring-putty-to-use-utf-8.html

将PUTTY配置中的字符集更改为UTF-8后,错误消失了。

BTW:就像Miklos Krivan写道:其他人也有这个问题,因为他们的用户名是.gitconfig中的变音符号。