2

您可能知道,Git Bash 不支持非拉丁字符。这会在创建和使用 SSH 密钥时导致多次失败(因为路径是俄语)。

有解决方法吗?

4

1 回答 1

2

这完全取决于您的 HOME 指向哪里?

问题 491

总结一下我的测试,如果 Windows 用户名有非 ASCII 字符:

  1. 如果HOME环境变量设置为 ASCII 路径,并且该路径存在,Git Bash 会找到它(这是一种可能的解决方法)。

  2. 如果没有HOME环境变量并且HOME“”中的常量git/etc/profile设置为 ASCII 路径,并且该路径存在,Git Bash 会找到它。该行为似乎与 1 中的行为完全相同。

  3. 如果HOME环境变量设置为非 ASCII 路径(如“ C:\Höme”),Git Bash 不会找到它。它尝试回退到该C:\Documents and settings\[User Name]目录,但找不到它,因为它破坏了[User Name].

  4. HOME系统环境变量(或 中的常量git/etc/profile)设置为完全 ASCII 路径后,Git Bash 会找到主目录,但它仍然会破坏显示消息中的用户名。

  5. 第一次运行 Git GUI 时,当我尝试暂存和提交文件时,出现一个错误,提示提交消息中有无效的 utf-8 字符。
    解决方法是打开Edit->Options对话框并在相应的编辑框中输入有效的用户名和电子邮件地址
    似乎 Git 正在根据我的消息以及用户名和电子邮件撰写扩展消息。因为字段为空,它似乎试图从 Windows 用户名中生成默认值,但它可能会在我的系统上将其检索为 ISO-8859-1 字符串,然后代码的另一部分期望它是有效的utf-8,但不是。

  6. 如果用户名和电子邮件字段为空,我在尝试修改“编辑”->“选项”对话框中的某些选项时也会遇到上图“error2.jpg”中显示的错误。然而,这个错误并不总是发生,我不确定导致它的确切步骤。

  7. 在我设置了HOME变量和用户名和电子邮件地址之后,我可以毫无问题地工作,除了下一个。

  8. 如果非 ASCII 路径和文件名由本地 Windows 编码中的字符组成(我认为这是西班牙语、英语和大多数西欧 Windows 系统的 ISO-8859-1),则可以暂存和提交它们。
    所以,我已经能够暂存并提交一个名为“ cañón.txt”的文件。
    但是,如果路径包含无法在本地 Windows 编码中表示的 Unicode 字符,例如“ C:\My tests\test五.txt”,则此类文件在 Git GUI 窗口中会出现损坏,并no such file or directory在我尝试暂存它们时给出“”错误。

于 2011-03-21T19:32:53.233 回答