Git、PowerShell和德语umlauts

7

我一直在努力教授 msysgit 如何处理德语umlauts(ä ö ü),例如提交评论。没有成功......

所以我想尝试使用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(-)

("Einige Dateien hinzugefügt" = 一些文件已添加)

有趣的是-我本以为德语中的umlauts是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一起使用提交注释?我现在甚至不要求支持带有umlauts的文件名...只是纯文本的注释......

另外:放置这个

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

在我的.gitconfig文件中进行修改似乎对我的提交评论和git log没有任何影响.... :-(
有什么想法?思路?指针??

为什么不使用编辑器编写提交信息,而是在命令行中传递它们呢?或者像我一样使用英语的提交信息 :p - ThiefMaster
@ThiefMaster:我们有一个使用德语注释的政策,而且说实话,我很高兴——那些“Engrish”注释会很糟糕…… - marc_s
1
希望你不必使用德语变量/函数名称;) 无论如何,我会简单地省略-m“…”,让git启动编辑器。 - ThiefMaster
1
@ThiefMaster:我尝试使用编辑器来编写提交注释 - 没有改变,如果我输入任何umlauts,无论是“正常”的还是Unicode版本都会抱怨提交消息不符合utf-8(WTF!?!)并且git log将显示丑陋的象形文字而不是我的umlauts..... - marc_s
5个回答

2

有一个非官方的安装程序可以安装实验性版本的msysgit Unicode版,你可以尝试一下。如果对该安装程序有任何反馈,请在msysgit邮件列表上提出。


1
看起来很有趣,但不幸的是,它不能解决我的问题。在这个版本中,我甚至无法输入任何umlauts,键盘上的按键根本不起作用 :-( - marc_s

2

我有同样的问题(我来自瑞典)。似乎如果你使用Git扩展并通过它提交,那么umlaut字符就没问题了。我使用:

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

不过,我很想得到一个解决 PowerShell/命令行问题的方案。


1
我在使用PUTTY的命令行时遇到了与git相关的同样问题。我的解决方法是:按照这里所述的方式更改PUTTY字符集配置http://thegreyblog.blogspot.de/2009/08/configuring-putty-to-use-utf-8.html 在我将PUTTY配置中的字符集更改为UTF-8之后,错误消失了。 顺便提一句:正如Miklos Krivan在他的回答中写道:其他人也遇到了这个问题,因为他们的用户名在.gitconfig中带有变音符号。

1

MSysGit和Unicode以及简单的大小写存在已知的怪癖和问题。如果我是你,我会使用VirtualBox和一个小型Linux服务器映像(不需要桌面),并在主机和客户操作系统之间使用共享目录,而不是为此而苦苦挣扎。这样,您可以在Linux中使用Git但在Windows上进行开发。打开终端以远程连接到服务器,您可以像使用MSysGit一样使用alt+TAB切换窗口。


2
我认为Cygwin的git表现不错,而且比专门用于源代码控制的整个虚拟机要轻便一些。 - J. Holmes
虚拟机在当前的CPU和内存时代非常轻便,不要忽视它。Cygwin会带来一系列新问题,还不如咬咬牙选择虚拟机。 - Adam Dymitruk
从今天开始,您也可以使用Windows 10的Ubuntu Bash,因此您不需要虚拟机。实际上,我不是用这种方式来使用git,而是CVS(别问我为什么),但它在我的Windows机器上无法正常工作。 - sloth

0
检查您的编码字符集 $HOME/.gitconfig(在Linux中)或 %USERPROFILE%\.gitconfig(在Windows中)文件,它包含以下内容:
[user]
  name = Your Name
...

我觉得在你的情况下,这个文件是用ISO-8859-1编码的(你的名字不仅包含ASCII字符),但是你的项目设置是UTF-8。

昨天我也遇到了同样的情况,将.gitconfig文件的字符集改为UTF-8解决了问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接