【问题标题】:Git and PowerShell and German umlautsGit 和 PowerShell 以及德语变音符号
【发布时间】:2012-01-20 21:57:48
【问题描述】:

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

所以我想我可能会尝试使用 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” = 添加了一些文件)

有趣 - 我可以发誓德国变音符号是 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 在提交 cmets 上合作?我什至没有要求支持带有变音符号的文件名......现在只是 cmets(纯文本)......

还有:放这个

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

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

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

【问题讨论】:

  • 为什么不使用编辑器来编写提交消息,而不是在命令行中传递它们?或者像我一样做它并使用英文提交消息:p
  • @ThiefMaster:我们有使用德国 cmets 的政策,坦率地说,我很高兴 - 那些“英国” cmets 太可怕了.....
  • 我希望你不必使用德语变量/函数名 ;) - 无论如何,我会简单地省略 -m "..." 并让 git 启动一个编辑器。
  • @ThiefMaster:我尝试为我的提交 cmets 使用编辑器 - 没有变化,如果我输入任何变音符号,“正常”版本和 Unicode 版本都抱怨提交消息不符合 utf -8 (WTF!?!?!) 和git log 会显示丑陋的象形文字而不是我的变音符号.....

标签: git powershell utf-8 msysgit


【解决方案1】:

有一个用于实验性Unicode version of msysgit 的非官方安装程序,您可能想尝试一下。在 msysgit 邮件列表中感谢对该安装程序的反馈。

【讨论】:

  • 看起来很有趣 - 但不幸的是,并没有解决我的问题 - 在这个版本中,我什至无法输入任何变音符号 - 键盘上的键根本不起作用:-(
【解决方案2】:

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

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

希望找到解决 powershell/命令行问题的方法。

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 我认为 Cygwin 的 git 玩得很好,而且比专门用于源代码控制的整个 vm 更轻
    • 在这个 CPU 和 ram 时代,VM 非常轻巧。不要打折。 Cygwin 带来了一系列全新的问题。还不如硬着头皮去买个虚拟机。
    • 从今天开始,您还可以使用 Windows 10 的 Ubuntu Bash,因此您不需要虚拟机。我实际上并没有以这种方式使用 git,而是 CVS(不要问),它在我的 Windows 机器上无法正常工作。
    【解决方案4】:

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

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

    顺便说一句: 就像 Miklos Krivan 在他的回答中所写:其他人也有这个问题,因为他们的用户名在 .gitconfig 中带有变音符号。

    【讨论】:

      【解决方案5】:

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

      [user]
        name = Your Name
      ...
      

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-01-21
        • 2013-02-09
        • 1970-01-01
        • 2021-03-26
        • 2012-08-14
        • 1970-01-01
        • 2021-09-28
        相关资源
        最近更新 更多