您可能知道,Git Bash 不支持非拉丁字符。这会在创建和使用 SSH 密钥时导致多次失败(因为路径是俄语)。
有解决方法吗?
这完全取决于您的 HOME 指向哪里?
见问题 491:
总结一下我的测试,如果 Windows 用户名有非 ASCII 字符:
如果
HOME
环境变量设置为 ASCII 路径,并且该路径存在,Git Bash 会找到它(这是一种可能的解决方法)。如果没有
HOME
环境变量并且HOME
“”中的常量git/etc/profile
设置为 ASCII 路径,并且该路径存在,Git Bash 会找到它。该行为似乎与 1 中的行为完全相同。如果
HOME
环境变量设置为非 ASCII 路径(如“C:\Höme
”),Git Bash 不会找到它。它尝试回退到该C:\Documents and settings\[User Name]
目录,但找不到它,因为它破坏了[User Name]
.在
HOME
系统环境变量(或 中的常量git/etc/profile
)设置为完全 ASCII 路径后,Git Bash 会找到主目录,但它仍然会破坏显示消息中的用户名。第一次运行 Git GUI 时,当我尝试暂存和提交文件时,出现一个错误,提示提交消息中有无效的 utf-8 字符。
解决方法是打开Edit->Options
对话框并在相应的编辑框中输入有效的用户名和电子邮件地址。
似乎 Git 正在根据我的消息以及用户名和电子邮件撰写扩展消息。因为字段为空,它似乎试图从 Windows 用户名中生成默认值,但它可能会在我的系统上将其检索为 ISO-8859-1 字符串,然后代码的另一部分期望它是有效的utf-8,但不是。如果用户名和电子邮件字段为空,我在尝试修改“编辑”->“选项”对话框中的某些选项时也会遇到上图“error2.jpg”中显示的错误。然而,这个错误并不总是发生,我不确定导致它的确切步骤。
在我设置了
HOME
变量和用户名和电子邮件地址之后,我可以毫无问题地工作,除了下一个。如果非 ASCII 路径和文件名由本地 Windows 编码中的字符组成(我认为这是西班牙语、英语和大多数西欧 Windows 系统的 ISO-8859-1),则可以暂存和提交它们。
所以,我已经能够暂存并提交一个名为“cañón.txt
”的文件。
但是,如果路径包含无法在本地 Windows 编码中表示的 Unicode 字符,例如“C:\My tests\test五.txt
”,则此类文件在 Git GUI 窗口中会出现损坏,并no such file or directory
在我尝试暂存它们时给出“”错误。