Git添加一个名称中带有空格的文件夹

Posted

技术标签:

【中文标题】Git添加一个名称中带有空格的文件夹【英文标题】:Git add a folder with spaces in the name 【发布时间】:2015-02-08 04:12:39 【问题描述】:

问题

当我想在暂存区添加一些东西时,我通常键入 git add 。但是,我无法添加名称中带有空格的文件夹。我的git add 自动完成无法正确转义空格。

例如

我有一个文件夹,名为:文件夹 A

我运行命令git add F < tab-autocomplete >,它变成git add Folder A/。 如果我尝试添加此文件夹,它将引发错误:

fatal: pathspec 'Folder' did not match any files

这是因为正确的语法应该是git add Folder\ A/

总结

我不知道如何解决这个问题,也找不到任何具有永久修复的资源。此问题“How git deals with folder names with spaces”描述了一个修复程序。但它涉及在文件夹名称周围放置语音标记,我真的不想这样做。有没有更好的解决方案?

我正在使用 git 版本 2.2.0 和 zsh 版本 5.0.7。提前谢谢!

【问题讨论】:

最新的 git 2.8.3 问题是否仍然存在? 【参考方案1】:

解决方案是将文件夹名称包含在 ' 和 '(单引号)中。 在您的示例中,请尝试以下操作:

git add 'Folder A'

我希望这会有所帮助:)

【讨论】:

windows上,必须是双引号,比如git add "Folder A"【参考方案2】:

您检查“git completion with zsh: filenames with spaces aren't being escaped properly”中提到的设置是否有效:

当我使用制表符完成插入文件名时,shell 反斜杠按预期转义了文件名。

% echo "testing" >> test<tab>

点击三下标签后自动完成。

% echo "testing" >> test\ four\ -\ latest.txt

换句话说,正确的补全不应该需要 quptes ("),而是应该转义空格。

【讨论】:

当我运行命令echo "testing" &gt;&gt; test&lt;tab&gt; 它会正确地自动完成。但是,如上所述,当我尝试git add &lt;tab&gt; 时,它不会自动完成。我可以进一步澄清我的问题吗?作为一种解决方法,我已经开始使用git add "&lt;tab autocomplete&gt;" 来转义空格。但正如你所说@VonC:proper completion shouldn't need quptes ("), but should escape spaces.

以上是关于Git添加一个名称中带有空格的文件夹的主要内容,如果未能解决你的问题,请参考以下文章

如何在 python 中导入名称中带有空格的文件?

Windows 7 与 Windows 10 - 处理批处理文件中带有空格的文件夹名称

将 URL 回显到网络驱动器上名称中带有空格的文件

让 ghostscript 接收名称中带有空格的文件(例如“我的文档”中的某些内容)

SQL*Plus 脚本中带空格的文件夹名称

在 pandas 数据框中转换具有许多工作表(在 shett 名称中带有空格)的 excel 文件